我刚刚将新的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()
答案 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