苹果登录后退出

时间:2019-12-10 11:02:05

标签: ios swift ios13 apple-sign-in

我刚刚将新的Apple登录集成到我的应用中。第一次尝试注册时,我通过didCompleteWithAuthorization方法收到了fullName,电子邮件和其他凭据,但是在每次下一次尝试时,fullName,电子邮件和其他用户数据都为零。我认为这是因为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()

3 个答案:

答案 0 :(得分:1)

此行为正常

仅在初始用户注册后,用户信息才会在ASAuthorizationAppleIDCredential中发送。随后使用同一帐户通过使用Apple登录登录到您的应用的操作不会共享任何有用的信息,只会在identifier中返回用户ASAuthorizationAppleIDCredential。建议您安全地缓存包含用户信息的初始ASAuthorizationAppleIDCredential,直到可以验证服务器上已成功创建帐户为止。因此,下次用户登录时,您必须使用identifier来获取服务器上的电子邮件和其他详细信息,因为苹果始终会返回相同的identifier,即使您删除该应用程序并将其重新安装。

答案 1 :(得分:1)

是的,它按设计工作。但是对于您要求进行测试的具体问题,您可以在apple.com上访问用户的Apple帐户>>管理Apple ID>>安全>>使用Apple登录(管理应用程序和网站),您应该可以停止使用网站或应用程序。执行此操作后,下次尝试时,您将再次收到所有请求。

您可以在 iPhone/iPad 上的帐户>>密码和安全>>使用 Apple ID 的应用程序下执行相同操作。

答案 2 :(得分:0)

出于测试目的,您可以转到设置 -> 个人资料(您可以在其中看到您的图片)-> 密码和安全性 -> 使用 Apple ID 的应用程序 -> 选择您的应用程序 -> 停止使用 Apple ID