如何可靠地存储使用 Apple 登录的电子邮件?

问题描述

在 iOS 应用程序中使用“使用 Apple 登录”时,一个设计功能似乎是用户的电子邮件仅在第一次注册时在 ASAuthorizationAppleIDCredential 中发送(可以将其视为“注册”),但不在后续事件中(“登录”)。取而代之的是用作永久用户标识符的 api returns the user id sub

由于此电子邮件对应用程序很有用,因此我需要将此数据(子 + 电子邮件)存储在某处,以便我以后能够从 sub 中恢复电子邮件。我见过的所有选项都没有在所有情况下都有效:

  1. 在 KeyChain 中存储(子 + 电子邮件)(参见 SO discussion)。如果应用被删除并重新安装,这将失败,因为随后删除了钥匙串数据,但使用 Apple 登录仍然不会提供电子邮件
  2. 在我自己的后端服务器上存储(子 + 电子邮件)。如果我的后端服务器发生故障,这将失败。
  3. 如果有一种自动重置和强制用户注册而不是登录方法,情况就不会那么糟糕,这样我就可以在我的后端关闭或我的钥匙串数据被删除时恢复。这可以通过转到 iPhone 设置 -> 密码和安全性 -> 使用 Apple ID 的应用程序并删除应用程序来手动完成)。但这当然不是一种可接受的用户体验。

thread 还讨论了这些设计问题。我可能缺少一些基本的东西,很乐意提供建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)