问题描述
在 iOS 应用程序中使用“使用 Apple 登录”时,一个设计功能似乎是用户的电子邮件仅在第一次注册时在 ASAuthorizationAppleIDCredential
中发送(可以将其视为“注册”),但不在后续事件中(“登录”)。取而代之的是用作永久用户标识符的 api returns the user id sub
。
由于此电子邮件对应用程序很有用,因此我需要将此数据(子 + 电子邮件)存储在某处,以便我以后能够从 sub
中恢复电子邮件。我见过的所有选项都没有在所有情况下都有效:
- 在 KeyChain 中存储(子 + 电子邮件)(参见 SO discussion)。如果应用被删除并重新安装,这将失败,因为随后删除了钥匙串数据,但使用 Apple 登录仍然不会提供电子邮件。
- 在我自己的后端服务器上存储(子 + 电子邮件)。如果我的后端服务器发生故障,这将失败。
- 如果有一种自动重置和强制用户注册而不是登录的方法,情况就不会那么糟糕,这样我就可以在我的后端关闭或我的钥匙串数据被删除时恢复。这可以通过转到 iPhone 设置 -> 密码和安全性 -> 使用 Apple ID 的应用程序并删除应用程序来手动完成)。但这当然不是一种可接受的用户体验。
此 thread 还讨论了这些设计问题。我可能缺少一些基本的东西,很乐意提供建议。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)