我刚刚将新的苹果登录集成到我的应用程序中。当我第一次尝试注册时,我收到了didCompleteWithAuthorization
方法中的全名、电子邮件和其他凭据,但在每次下一次尝试时,全名、电子邮件和其他用户数据都是零。我认为这是因为已经生成了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()
这行为正确
用户信息仅在初始用户注册时在ASAuthorizationAppleIDCredential
中发送。使用同一帐户通过Apple 登录登录您的应用程序后续登录不会共享任何有用信息,并且只会在ASAuthorizationAppleIDCredential
中返回用户identifier
。建议您安全地缓存包含用户信息的初始ASAuthorizationAppleIDCredential
,直到您可以验证是否已在服务器上成功创建帐户。因此,下次用户登录时,您必须使用identifier
从服务器获取电子邮件和其他详细信息,因为即使您删除应用程序并重新安装,Apple也始终返回相同的identifier
。
是的,它按设计工作。但是对于您要求测试的特定问题,您可以在"使用 Apple 登录(管理应用程序和网站"(apple.com>>"管理 Apple ID>>安全性">>上转到用户的 Apple 帐户,您应该能够停止使用该网站或应用程序。 一旦你这样做,在你下一次尝试时,你将再次收到所有请求。
您可以在iPhone/iPad上,在您的帐户下执行相同的操作>>"密码和安全">>"应用程序使用Apple ID"。
出于测试目的,您可以转到设置 ->个人资料(您可以在其中查看图片(->密码和安全性 -使用Apple ID>应用程序 -> 选择您的应用程序 ->停止使用Apple ID