使用 Apple 登录(JWT)identityToken 中缺少电子邮件声明

pra*_*iya 5 objective-c ios swift sign-in-with-apple

我们已经为我们的 iOS 应用程序实现了 Apple(SiwA) 登录。为了进行注册,我们需要用户的 Apple ID 和电子邮件地址。我们在第一次登录尝试时获取用户名和电子邮件详细信息,但之后为了获取电子邮件,我们正在解码身份令牌并获取电子邮件地址。

我们观察到身份令牌并不总是包含电子邮件地址。

请按照以下步骤重现该问题。

第 1 步:用户单击“使用 Apple 登录”按钮,它会显示 Apple 授权弹出窗口,其中包含姓名、共享电子邮件和隐藏电子邮件选项等详细信息,然后在成功响应中,我们会在收到的 Apple 身份令牌中收到一封电子邮件。

第 2 步:现在,用户按照以下步骤撤销 Apple 帐户的签名访问权限(设置 -> Apple 帐户 -> 密码和安全 -> Apple id 登录 -> 从选项中删除应用程序)

步骤 3:在步骤 2 之后,用户再次单击“使用苹果按钮登录”,通常会显示授权弹出窗口,其中包含与步骤 1 类似的详细信息,在这种情况下,我们收到了来自身份令牌的电子邮件,因此我们没有任何问题。

步骤 4:在步骤 2 之后,用户单击使用 Apple 按钮登录,授权弹出窗口仅包含电子邮件地址,而不包含姓名、共享电子邮件或隐藏电子邮件选项。在这种情况下,我们没有从身份令牌收到电子邮件。

主要问题是授权弹出窗口在撤销访问权限后不会重置,它显示为之前的登录状态,在这种情况下,我们不会收到电子邮件,否则我们总是从身份令牌中获取电子邮件地址。

我们可以调试/确定为什么授权弹出窗口在撤销访问权限后没有重置吗?

任何帮助,将不胜感激。