我们在Parallels征服了Apple的方式



我认为在WWDC 2019听到苹果登录(简称SIWA)之后,已经有很多人了。 在本文中,我将告诉您将此项集成到我们的许可门户中时必须面对的具体陷阱。 对于那些刚决定与SIWA打交道的人而言,这篇文章并不完整(在本文的结尾,我为他们提供了一些事实调查链接)。 在这篇材料中,很可能许多人会找到整合新的Apple服务时可能出现的问题的答案。

Apple不允许自定义重定向


实际上,我仍然没有在开发论坛上看到此问题的答案。 最重要的是:如果您想使用SIWA JS API,即 如果您由于某个或其他原因(而不是macOS / iOS或这些系统的旧版本)而由于缺少本机SDK而无法使用本机SDK,则您需要自己的公共门户,否则就不需要。 因为在WWDR门户上,您需要注册并确认您是所有者,您的域,并且只有在该域上,您才能从Apple的角度附加有效的重定向:



如果希望拦截应用程序中的重定向,该怎么办? 我们非常简单地解决了这个问题:在门户网站上,我们为应用程序创建了有效重定向的列表,在显示SIWA授权页面之前,对它们进行了排序。 只需使用从Apple接收到的数据进行从门户到应用程序的重定向。 简单开朗。

电子邮件问题


让我们看一下如何解决用户电子邮件的问题。 首先,没有REST API允许您从后端获取此信息-只有客户端才能接收此数据,并且可以与授权代码一起传输。

其次,关于用户名和电子邮件的信息仅传输一次,即通过Apple登录到该应用程序的第一个用户,用户在其中选择共享他的个人数据的选项。

就其本身而言,如果在门户网站上成功创建了与社交个人资料的连接,则这些问题并不是直接重要的-用户ID相同且与团队ID相关联-即 它是您团队与SIWA集成的所有应用程序之一。 但是,如果通过Apple登录,然后发生错误并且未在门户上创建通信,则唯一的选择是将用户发送到appleid.apple.com,断开与应用程序的连接,然后重试。 实际上,通过编写相应的知识库文章及其链接可以解决该问题。

下一个更令人不快的问题是,Apple提出了带有代理电子邮件的新概念。 在我们的案例中,如果用户已经用他的真实肥皂访问了许可门户,并且通过Apple的首次登录选择了隐藏电子邮件的选项,则将使用此代理电子邮件注册一个新帐户,其中显然没有许可证,这会使最终用户处于死胡同。

这个问题的解决方案非常简单: 用户ID在SIWA中是相同的,并且不依赖于登录的所选选项/应用程序,那么我们只需要使用一个特殊脚本,即可使用真实的用户肥皂将该捆绑包从Apple切换到另一个帐户,从而“还原购买的商品” ”。 完成此过程之后,用户将通过SIWA开始进入门户网站上的另一个帐户,并且一切对他来说都正常。

通过Web门户登录时,没有应用程序图标


为了解决另一个问题,我们要求苹果公司的代表进行澄清,分享我们的知识:

https://forums.developer.apple.com/thread/123054


即 含义如下:位于SIWA组m的头。 仅交付了macOS / iOS应用程序,其中已添加了门户的必要服务ID。 因此,在头应用程序d中显示图标。 Apple测试的App Store媒体版本。 该图标将从此处获取。

因此,如果您只有门户并且App Store中没有应用程序,则不会有漂亮的图标,但是您可以使用应用程序的名称离开-在没有媒体的情况下,主应用程序会从Description服务ID中获取以下信息:



SIWA组中的元素数限制为5


此问题目前尚无解决方法,除了使用大量组外,如果您缺少6个标识符:1个主应用程序和5个从属标识符,那么当您尝试注册下一个标识符时,将看到以下消息:



我们已经为许可门户以及与此门户一起运行的每个应用程序创建了组。 关于插槽的限制,我们已经在Apple发射了雷达,正在等待他们的回应。

有用的链接


我认为,最有用的链接是我实质上所做的一切。 苹果有用的底座就在这里

好好享受 问题,想法,想法和建议在评论中被接受。

Source: https://habr.com/ru/post/zh-CN469499/


All Articles