同一个应用程序下的多个应用程序使用 Apple 登录

Posted

技术标签:

【中文标题】同一个应用程序下的多个应用程序使用 Apple 登录【英文标题】:Multiple apps under same Sign in with Apple 【发布时间】:2021-08-19 01:16:18 【问题描述】:

我有几个应用程序(约 20 个),我希望能够在每个应用程序中使用相同的帐户登录;这些应用属于同一个 Apple 开发者帐户。

当用户在其中一个应用程序中创建帐户时,这将允许访问这些应用程序并在它们之间同步内容(它会创建某种组织帐户)。然后可以在他们之间共享该帐户。

此流程已使用自定义实现的电子邮件+密码身份验证和 Facebook 登录方法,但现在我需要引入 Sign in with Apple 并且遇到了一些问题。

尝试在 App Store Connect 中的同一应用下添加多个应用时,我收到以下错误:

与此主要应用关联的应用数量已达到上限。最大限制:'5'

如何将所有约 20 个应用组合在一起,以便我可以识别从不同应用登录的同一个用户?

【问题讨论】:

【参考方案1】:

从您的问题来看,我认为 Apple 对链接应用程序设置的限制无法更改。但我建议您向 Apple 的开发者支持团队发送一封电子邮件,询问他们是否允许 20 个应用共享相同的帐户信息,而不是当前最多 5 个。

除此之外,这就是我的想法:我不确定您的应用。我知道有些应用程序会允许用户更改他们的用户名。如果是这种情况,您可以将其从用户名更改为昵称,并分配一个新用户名(可以是旧用户的旧昵称或他们的电子邮件地址)。并使用户名不变。据我所知,当用户使用 Apple 登录时,您可以要求他们输入一些信息。在这种情况下,您可以要求他们输入一个用户名,该用户名稍后将成为其他应用程序中的通用用户名。这是我目前考虑的解决方案。

【讨论】:

【参考方案2】:

在 WWDC21 期间,我能够与 Apple 工程师取得联系 - 登录 Apple 专用实验室,他们向我解释了如何解决这个问题。

将多个应用添加到同一个 App ID 意味着针对相同目标但在不同平台上运行的应用(例如 ios 应用、macOS 应用、watchOS 应用等)。

解决方案是启用每个应用程序作为 Sign in with Apple 的主要 ID

当从应用程序中触发 Sign in with Apple 请求时,这将返回一个 JWT 令牌,该令牌将用于在您的后端继续进行身份验证创建/识别。

此令牌包含一个唯一用户 ID,可在 sub 键下找到,该用户 ID 由您的团队/开发者帐户 ID 和用户的 Apple ID 组合而成;

然后,此值在您的开发者帐户中是唯一的,这意味着用户 Apple ID 和与您的应用关联的团队 ID 的组合将始终为 sub 字段生成相同的值。这将跨应用识别用户,这样您的后端就可以避免生成新帐户,而是返回现有的关联帐户。

【讨论】:

以上是关于同一个应用程序下的多个应用程序使用 Apple 登录的主要内容,如果未能解决你的问题,请参考以下文章

Apple在应用程序中拒绝了facebook登录应用程序

机器学习系列模型评价ROC曲线约登指数最佳阈值一个函数中实现约登指数计算并集成到ROC图中,给出默认阈值及最佳阈值下的混淆矩阵

如何使用 Apple 的 NearbyInteraction 框架连接多个设备(实现多个正在进行的会话)

在您的 Apple Developer 注册过期后,您还能从 iOS 访问您的应用程序吗?

iOS Web 应用程序(尤其是 iPad)的多个“apple-touch-startup-image”分辨率?

带有 Apple Watch 的 Cordova 应用程序无法在 Apple Store 上上传(有多个包含 CFBundleIdentifier 冲突的捆绑包)