苹果登录后退出

luc*_*910 2 ios swift ios13 apple-sign-in

我刚刚将新的苹果登录集成到我的应用程序中。第一次尝试注册时,我收到了 fullName、email 和didCompleteWithAuthorization方法中的其他凭据,但是在下次尝试时 fullName、email 和其他用户数据为零。我认为这是因为jwt令牌已经生成。我试图研究热点以注销但找不到任何解决方案。如果有人有同样的问题,请帮助我。为了测试,我需要多次获取凭据。所以我需要以某种方式注销。

这就是我的要求:

    let provider = ASAuthorizationAppleIDProvider()
    let request = provider.createRequest()
    request.requestedScopes = [.fullName, .email]
    let controller = ASAuthorizationController(authorizationRequests: [request])
    controller.delegate = self
    controller.presentationContextProvider = self
    controller.performRequests()
Run Code Online (Sandbox Code Playgroud)

Pin*_*Gjr 6

这行为正确

用户信息仅ASAuthorizationAppleIDCredential在初始用户注册时发送。随后登录到你的应用程序中使用登录与苹果相同的帐户不共享任何有用的信息,只会返回用户identifierASAuthorizationAppleIDCredential。建议您安全地缓存ASAuthorizationAppleIDCredential包含用户信息的初始值,直到您可以验证已在您的服务器上成功创建帐户。因此,下次当用户登录时,您必须使用identifieras apple从您的服务器获取电子邮件和其他详细信息,identifier即使您删除应用程序并重新安装它,也始终返回相同的内容。

  • 苹果只会在第一次返回电子邮件和用户名,之后才会返回唯一的标识符,因此您必须从服务器获取这些详细信息。因此基本上您需要将标识符传递到服务器才能获取用户名和电子邮件。 (4认同)
  • 使用“JWT”库解码令牌字符串,可以从令牌中获取“电子邮件”信息。 (2认同)