我想很多人在 WWDC 2019 之后就已经听说过 Sign In with Apple(简称 SIWA)了。 在这篇文章中,我将告诉您在将这个东西集成到我们的许可门户中时我必须面对哪些具体陷阱。 本文并不适合那些刚刚决定了解 SIWA 的人(对于他们,我在文末提供了一些教育链接)。 在这份材料中,许多人很可能会找到集成新 Apple 服务时可能出现的问题的答案。
Apple 不允许自定义重定向
事实上,我在开发者论坛上仍然没有看到这个问题的答案。 重点是:如果您想使用 SIWA JS API,即由于某种原因(不是 macOS/iOS 或这些系统的旧版本)而无法通过原生 SDK 工作,那么您需要自己的公共门户,否则没有其他办法。 因为在 WWDR 门户上,您需要注册并确认您是域的所有者,并且只有在该门户上您才能附加从 Apple 角度来看可以接受的重定向:
如果您想拦截应用程序中的重定向,该怎么办? 我们非常简单地解决了这个问题:我们在门户上创建了应用程序可接受的重定向列表,他们在显示 SIWA 授权页面之前订购这些重定向。 我们只需使用从 Apple 收到的数据从门户重定向到应用程序即可。 简单又愤怒。
电子邮件问题
让我们看看我们如何解决用户电子邮件的问题。 首先,没有 REST API 允许您从后端获取此信息 - 只有客户端接收此数据并可以将其与授权代码一起传输。
其次,有关用户姓名和电子邮件的信息仅传输一次,即用户首次通过 Apple 登录应用程序时,用户可以在其中选择共享其个人数据的选项。
就其本身而言,如果在门户上成功创建了与社交配置文件的连接(用户 ID 相同并且链接到团队 ID),那么这些问题并不直接重要——即对于您团队的所有 SIWA 集成应用程序来说都是一样的。 但是,如果登录是通过 Apple 进行的,并且沿着路径进一步发生错误并且未创建门户上的连接,则唯一的选择是将用户发送到 appleid.apple.com,断开与应用程序的连接,然后再试一次。 实际上,可以通过编写适当的知识库文章并链接到它来解决该问题。
下一个更令人不快的问题与苹果提出了代理电子邮件的新概念有关。 在我们的例子中,如果用户已经使用他的真实肥皂访问了许可门户,并且在首次通过 Apple 登录时选择了隐藏电子邮件的选项,则会使用该代理电子邮件注册一个新帐户邮件,显然不包含任何许可证,这使最终用户陷入了死胡同。
这个问题的解决办法很简单:因为。 如果 SIWA 中的用户 ID 相同,并且不依赖于登录所选择的选项/应用程序,那么我们只需使用特殊脚本即可允许您将此连接从 Apple 切换到具有用户真实身份的另一个帐户肥皂,从而“恢复您的购买”” 完成此过程后,用户开始通过 SIWA 访问门户上的另一个帐户,并且一切正常。
通过门户网站登录时没有应用程序图标
为了解决另一个问题,我们向苹果代表寻求澄清并分享我们的知识:
那些。 含义如下: SIWA 集团的负责人 m.b. 仅交付 macOS/iOS 应用程序,其中已添加了门户的必要服务 ID。 因此,为了显示主应用程序的图标。 在 App Store 中发布的版本以及经过 Apple 验证的媒体。 图标将从那里获取。
因此,如果您只有一个门户而没有来自 App Store 的应用程序,那么您将不会有漂亮的图标,但您可以使用应用程序的名称 - 如果主应用程序没有媒体,则此信息是取自描述服务 ID:
SIWA 组中的元素数量限制为 5
目前没有解决此问题的方法,除非使用多个组,如果您缺少 6 个标识符:1 个头应用程序和 5 个依赖应用程序,那么当您尝试注册下一个应用程序时,您将看到此消息:
我们为我们的许可证门户以及与该门户交互的每个应用程序创建了组。 关于插槽限制,我们已经与苹果公司建立了雷达,正在等待他们的回应。
有用的链接
最有用
享受! 欢迎在评论中提出问题、想法、想法和建议。
来源: habr.com