ios - 使用 Apple 登录

标签 ios swift sign-in-with-apple

我正在尝试实现“使用Apple登录”,因为当您有其他第三方登录库时现在需要它。我的问题是,有没有办法让我像从 facebook 和 google 登录一样获取苹果的身份验证 token ?我所能得到的只是来自 ASAuthorizationAppleIDCredential 的身份 token 和授权代码。我不太清楚我们的 API 是用来获取用户信息的。

非常感谢您的回答。

最佳答案

ASAuthorizationControllerDelegate

获取 token

func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
        
        if let appleIDCredential = authorization.credential as? ASAuthorizationAppleIDCredential {
            if let data = appleIDCredential.identityToken {
                let token = String(decoding: data, as: UTF8.self)
                // here send token to server
            }
        }
    }
}

发送token到服务器,必须设置 https://developer.apple.com/documentation/sign_in_with_apple/sign_in_with_apple_rest_api

基于此 token ,您的服务器将从 Apple 获取用户信息,就像获取 Facebook 用户数据一样。

然后您的 api 应根据此数据实现用户身份验证(例如,根据用户电子邮件创建用户帐户并将您的访问 token 返回给应用程序)

关于ios - 使用 Apple 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63719966/

相关文章:

java - 如何从 Java 中的 Apple 公钥 JSON 响应中获取公钥?

ios - Xcode 不断提示 .signUp 仅在 iOS 13.2 中可用。这是 Xcode 的 bug 吗?

iOS - UIButton 成为打开键盘的第一响应者

ios - Person 没有可见性 @interface

objective-c - 如何使用objectForKey和objectAtIndex高效访问Obj-C中的大对象?

ios - 没有这样的模块 'Koloda"

arrays - Swift:通过引用传递数组?

Swift 应用内购买不起作用

swift - 在 Swift 中传递并打印枚举中的所有情况

ios - 如何验证 Sign In With Apple 中的 realUserStatus 值