首页 > 解决方案 > 使用 (JWT) identityToken 中的 Apple 缺少电子邮件声明登录

问题描述

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

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

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

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

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

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

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

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

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

任何帮助,将不胜感激。

标签: iosobjective-cswiftsign-in-with-apple

解决方案


推荐阅读