gpt4 book ai didi

ios - Sign in with Apple 下的多个应用

转载 作者:行者123 更新时间:2023-12-02 18:43:23 26 4
gpt4 key购买 nike

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

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

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

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

Maximum number of apps have been associated with this primary app. Max limit: '5'

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

最佳答案

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

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

解决方案是启用每个应用程序作为使用 Apple 登录的主要 ID

当从应用内触发 Sign in with Apple 请求时,在成功响应后,authorizationController(controller:didCompleteWithAuthorization:)调用回调。提供的 ASAuthorization 对象在成功转换为 ASAuthorizationAppleIDCredential 后可用于检索 JWT token (特别是 identityToken,它将用于继续进行身份验证创建/识别在你的后台。

func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
switch authorization.credential {
case let appleIDCredential as ASAuthorizationAppleIDCredential:
guard let accessToken = appleIDCredential.identityToken else {
// Handle your error here: access token not found
return
}
let stringToken = String(decoding: accessToken, as: UTF8.self)
// From here you can use the decoded access token or use the raw Data directly
default:
break
}
}

此 token 包含一个唯一用户 ID,可在 sub 键下找到,它是根据您的团队/开发者帐户 ID 和用户的 Apple ID 组合创建的;

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

关于ios - Sign in with Apple 下的多个应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67778700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com