Joh*_*nny 15 xcode applet ios ios13
因此,我正在使用 Apple 实现登录,在模拟器上一切正常,我请求电子邮件、fullName 范围、身份验证 UI 显示,并且我可以获得数据,如下图所示:
但是在真实设备(iPadOS 13、iPad 2018)上进行测试时,UI 没有显示(它不会在 UI 上询问姓名和电子邮件),而且我无法从响应中获取电子邮件、fullName,并且我也可以确认authorizedScopes是空的,我只能得到用户标识符
我相信这是一个错误,会提交雷达,也在苹果开发者论坛上发表了讨论(但他们通常不会批准我的帖子,我不知道为什么)
如果这不是错误,有人可以告诉我如何解决这个问题吗?谢谢
Joh*_*nny 23
问题解决了!tl;博士
这是预期的行为
苹果工程师回答(原文链接:https : //forums.developer.apple.com/thread/121496)
嗨aslkdjalksdjasdasd,
这行为正确,用户信息仅在初始用户注册时在 ASAuthorizationAppleIDCredential 中发送。后续使用 Sign In with Apple 使用同一帐户登录您的应用程序不会共享任何用户信息,只会在 ASAuthorizationAppleIDCredential 中返回用户标识符。建议您安全地缓存包含用户信息的初始 ASAuthorizationAppleIDCredential,直到您可以验证帐户已成功在您的服务器上创建。
帕特里克
此行为也记录在 Apple 的 Sign in with Apple 文档中,请查看文档。
确保您的应用将凭据和用户信息中继到您的应用服务器。 API 会收集此信息,并在用户首次使用 Apple 登录登录应用程序时与您的应用程序共享。如果用户随后在另一台设备上使用 Apple 登录,则 API 不会再次询问用户的姓名或电子邮件。仅当用户停止使用 Apple 登录并稍后重新连接到您的应用程序时,它才会再次收集信息。
小智 10
如果有人第一次存储“用户电子邮件”、“名字”失败,那么他应该按照以下步骤操作:
iPhone 设置 -> Apple Id -> 密码和安全 -> Apple ID 登录 -> {YOUR APP} > 停止使用 Apple ID。