ios - 使用 (JWT) identityToken 中的 Apple 缺少电子邮件声明登录
问题描述
我们已经为我们的 iOS 应用程序实现了 Apple(SiwA) 登录。对于注册,我们需要用户的 Apple id 和电子邮件地址。我们在第一次登录尝试时获取用户名和电子邮件详细信息,但之后为了获取电子邮件,我们正在解码身份令牌并获取电子邮件地址。
我们观察到身份令牌并不总是包含电子邮件地址。
请按照以下步骤重现该问题。
第 1 步:用户单击“使用 Apple 登录”按钮,它会显示 Apple 授权弹出窗口,其中包含名称、共享电子邮件和隐藏电子邮件选项等详细信息,然后在成功响应中,我们会在收到的 Apple 身份令牌中收到一封电子邮件。
第 2 步:现在用户通过以下步骤撤销苹果帐户的签名访问权限(设置 -> Apple 帐户 -> 密码和安全 -> Apple id 登录 -> 从选项中删除应用程序)
第 3 步:在第 2 步之后,用户再次单击使用苹果按钮登录,通常会显示授权弹出窗口,其中包含第 1 步等详细信息,在这种情况下,我们收到了来自身份令牌的电子邮件,因此我们没有任何问题。
第 4 步:在第 2 步之后,用户单击使用 Apple 按钮登录,授权弹出窗口仅包含电子邮件地址而不是姓名、共享电子邮件或隐藏电子邮件选项。在这种情况下,我们没有收到来自身份令牌的电子邮件。
主要问题是授权弹出窗口在撤销访问后没有重置,它显示像以前登录的状态,在这种情况下,我们没有收到电子邮件,否则我们总是从身份令牌中获得一个电子邮件地址。
我们可以调试/识别为什么在撤销访问后授权弹出窗口没有重置吗?
任何帮助,将不胜感激。
解决方案
推荐阅读
- python - 如何使用 Selenium 和 xpath 在 Google 登录页面中选择电子邮件或电话字段?
- python - DQN 理解输入和输出(层)
- python - 如何删除漂亮对象中的所有标签而不删除特定标签,例如or ?
- c# - SqlBulkCopy 列映射没有“即时效果”?
- api - OData V4 日期比较
- flutter - Flutter 不渲染 SVG 开始和结束标记
- javascript - 动态校验值并显示报警弹窗
- python - helpme 命令,找不到作者的语音频道 discord.py
- electron - Electron + Nuxt + Bootstrap-vue:出现空白屏幕和错误:在运行 prod 时找不到模块“vue”
- python - 如何使用 API 和 python 将图像添加到现有的 facebook 帖子?