Ios 无法获取名称&;在real device上通过Apple登录发送电子邮件

Ios 无法获取名称&;在real device上通过Apple登录发送电子邮件,ios,xcode,applet,ios13,Ios,Xcode,Applet,Ios13,因此,我正在使用Apple实现登录,模拟器上一切正常,我请求电子邮件、全名范围、验证UI显示,我可以获得数据,如下图所示: 但在真实设备(iPadOS 13,iPad 2018)上测试时,用户界面没有显示(它不要求用户界面上显示姓名和电子邮件),我无法从响应中获取电子邮件全名,我还可以确认授权范围为空,我只能获取用户标识符 我相信这是一个bug,会引起关注,也在苹果开发者论坛上发布了一个讨论(但他们通常不会批准我的帖子,我不知道为什么) 如果这不是一个bug,有人能告诉我如何修复它吗?

因此,我正在使用Apple实现登录,模拟器上一切正常,我请求电子邮件、全名范围、验证UI显示,我可以获得数据,如下图所示:

但在真实设备(iPadOS 13,iPad 2018)上测试时,用户界面没有显示(它不要求用户界面上显示姓名和电子邮件),我无法从响应中获取电子邮件全名,我还可以确认
授权范围
为空,我只能获取用户标识符

我相信这是一个bug,会引起关注,也在苹果开发者论坛上发布了一个讨论(但他们通常不会批准我的帖子,我不知道为什么)

如果这不是一个bug,有人能告诉我如何修复它吗? 谢谢

问题解决了!tl;博士

这是预期的行为

苹果工程师的回答 (原始帖子链接:)

你好,AslkdWalksdjasdasd

此操作正确,用户信息仅在初始用户注册时在ASAuthorizationAppleIDCredential中发送。后来的 使用与Apple相同的帐户登录您的应用程序 不共享任何用户信息,只返回 A授权应用程序ID凭据。建议您安全地 缓存包含用户的初始ASAuthorizationAppleIDCredential 信息,直到您可以验证帐户已成功注册 在您的服务器上创建

帕特里克

2019/12/15编辑 此行为也记录在Apple使用Apple doc登录时,请检查

确保应用程序将凭据和用户信息中继到应用程序服务器。 API收集这些信息,并在用户首次使用苹果登录应用程序时与应用程序共享这些信息。如果用户随后在另一台设备上使用Apple登录,API不会再次询问用户的姓名或电子邮件。只有当用户停止使用Apple登录并稍后重新连接到您的应用程序时,它才会再次收集信息


如果某人第一次未能存储“用户电子邮件”、“名字”,则应遵循以下步骤:


iPhone设置->苹果Id->密码和安全->苹果Id登录->{YOUR APP}>停止使用苹果Id。

我也有同样的问题,你的雷达号是多少?它似乎与缓存的身份验证响应有关。如果您进入“设置>iCloud>密码和安全性>使用Apple登录”并删除授权,则它可以工作。但是,如果你再次进行身份验证,它会失败,作用域为空。@HansKnöchel似乎这更像是一个功能,而不是一个“bug”,还没有提交公开的雷达,但有人在苹果开发者论坛上回答了我的问题,请查看此链接以获取更多信息:@HansKnöchel问题已解决!请参阅我的回答,如果用户已经使用apple登录,然后我们的服务器返回错误导致我们的服务器检测到用户名长度不符合我们的条件,并且我们的代码没有缓存用户信息。我怎样才能解决这个问题?不告诉用户从设置页面停止使用apple id?谢谢,我从appleId.apple.com上删除了该应用程序,并重新开始。我确实要求提供名称和电子邮件范围,但只收到电子邮件,名称不是真实的,它是一个标识符。我有一个机制第一次存储这个。但是,不知道如何重置所有这些。