因此,我正在使用Apple实施登录,模拟器上的所有操作都正常进行,我请求电子邮件,fullName范围,身份验证UI显示,并且我可以获取数据,如下图所示:
但是在真实设备(iPadOS 13,iPad 2018)上进行测试时,UI没有显示(它不要求在UI上输入姓名和电子邮件),并且我无法从响应中获取电子邮件fullName ,而且我还可以确认authorizedScopes
为空,我只能获取用户标识符
我相信这是一个错误,将引起人们的注意,并在Apple开发人员论坛上发布了讨论(但他们通常不会批准我的帖子,我不知道为什么)
如果这不是bug,有人可以告诉我如何解决吗? 谢谢
答案 0 :(得分:9)
如果有人第一次存储“用户电子邮件”、“名字”失败,那么他应该遵循以下步骤:
iPhone 设置 -> Apple Id -> 密码和安全 -> Apple ID 登录 -> {YOUR APP} > 停止使用 Apple ID。
答案 1 :(得分:8)
问题解决了! tl; dr
这是预期的行为
Apple工程师解答 (原始帖子链接:https://forums.developer.apple.com/thread/121496)
你好aslkdjalksdjasdasd,
这是正确的行为,用户信息仅在初始用户注册后才通过ASAuthorizationAppleIDCredential发送。后续的 使用具有相同帐户的Apple登录使用您的应用程序登录 不分享任何用户信息,并且只会在 ASAuthorizationAppleIDCredential。建议您安全 缓存包含用户的初始ASAuthorizationAppleIDCredential 信息,直到您可以验证帐户已成功 在您的服务器上创建。
帕特里克
此行为也记录在Apple的“使用Apple文档登录”中,选中documentation。
确保您的应用将凭据和用户信息中继到应用服务器。 API会收集此信息,并在用户首次使用“使用Apple登录”登录应用程序时与您的应用程序共享 。如果用户随后在另一台设备上使用“通过Apple登录”,则API不会再询问用户名或电子邮件。仅当用户停止使用Apple登录并稍后重新连接到您的应用时,它才会再次收集信息。