簡體   English   中英

多個應用在同一個 Sign in with Apple 下

[英]Multiple apps under same Sign in with Apple

我有幾個應用程序(~20),我希望能夠在每個應用程序中使用相同的帳戶登錄; 這些應用程序屬於同一個 Apple Developer 帳戶。

當用戶在其中一個應用程序中創建帳戶時,這允許訪問應用程序並在它們之間同步內容(它創建某種組織帳戶)。 然后可以在他們之間共享該帳戶。

此流程已經適用於自定義實施的電子郵件+密碼身份驗證和 Facebook 登錄方法,但現在我需要介紹 Sign in with Apple,我遇到了一些問題。

嘗試在 App Store Connect 中的同一個應用下添加多個應用時,出現以下錯誤:

最大數量的應用程序已與此主要應用程序相關聯。 最大限制:'5'

我如何將所有 ~20 個應用程序組合在一起,以便我可以識別從不同應用程序登錄的同一用戶?

在 WWDC21 期間,我能夠與 Apple 工程師取得聯系——登錄 Apple 專用實驗室,他們向我解釋了如何解決這個問題。

將多個應用程序添加到同一個 App ID 是針對相同目標但運行在不同平台上的應用程序(例如 iOS 應用程序、macOS 應用程序、watchOS 應用程序等)。

解決方案是啟用每個應用程序作為 Sign in with Apple 的主要 ID

當從應用程序中觸發 Sign in with Apple 請求時,在成功響應后,將調用authorizationController(controller:didCompleteWithAuthorization:)回調。 提供的ASAuthorization object 在成功轉換為ASAuthorizationAppleIDCredential可用於檢索 JWT 令牌(特別是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
    }
}

此令牌包含一個唯一的用戶 ID,可在sub密鑰下找到,該 ID 是根據您的團隊/開發人員帳戶 ID 和用戶的 Apple ID 的組合創建的;

此值在您的開發者帳戶中是唯一的,這意味着用戶 Apple ID 和與您的應用關聯的團隊 ID 的組合將始終為sub字段生成相同的值。 這將跨應用程序識別用戶,以便您的后端可以避免生成新帳戶,而是返回現有的關聯帳戶。

從你的問題來看,我認為蘋果對鏈接應用的限制是無法改變的。 但我建議您發送一個 email 給 Apple 的開發者支持團隊,詢問他們是否允許 20 個應用程序共享相同的帳戶信息,而不是目前最多 5 個。

除此之外,這就是我的想法:我不確定您的應用程序。 我知道有些應用程序允許用戶更改他們的用戶名。 如果您是這種情況,您可以將用戶名更改為昵稱,並分配一個新用戶名(可以是舊用戶的舊昵稱或他們的電子郵件地址)。 並使用戶名不變。 據我所知,當用戶使用 Sign-in with Apple 時,您可以要求他們輸入一些信息。 在這種情況下,您可以要求他們輸入一個用戶名,該用戶名稍后將成為其他應用程序中的通用用戶名。 這是我目前想到的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM