首页 > 解决方案 > 如何像 Day-One 一样使用用户 Apple-ID 创建匿名用户帐户?

问题描述

新的 iOS 应用程序应该能够连接到 Web 服务以跨设备同步数据。

我喜欢日记应用 Day One 解决这个问题的方式:


问题1:如何访问Apple ID?

据我所知,该应用程序不可能真正访问 Apple-ID。还是有一些无证的方法可以做到这一点?这怎么可能?

我怀疑该应用程序可能会使用 iCloud 来存储一些令牌?iCloud 存储与 Apple-ID 相关联,因此在新设备上安装时,可以从 iCloud 恢复令牌并使用它重新连接。

还是有其他/更好的方法?


问题2:如何处理认证?

让我们把问题 1 放在一边,假设我们已经解决了创建一些跨设备用户名的问题。如何处理身份验证?

乍一看,2b 似乎是最安全的解决方案,但真的是这样吗?同步数据未加密,但“仅”信任 HTTPS 连接。使用其他方法传输密码会增加额外的安全性吗?

此外,使用“密码”是否会增加额外的安全性?这不是用户为其用户选择的用户名选择的密码,而是自动生成的用户名/令牌的自动生成密码。

只使用生成的用户名令牌不一样吗?只有有权访问令牌/Apple ID/iCloud 帐户等的人才能访问 Web 服务。


那么,哪种解决方案是最好的?我错过了什么并且有更好的解决方案吗?

标签: iosauthenticationapple-id

解决方案


从 iOS 12 开始,Apple 为开发人员提供了一个 SDK 来访问用户 Apple ID——显然是在用户同意的情况下。开发者可以使用AuthenticationServiceSDK 来实现这一点。请在文档中阅读更多内容。我确信这就是 Day One 应用程序如何执行您所描述的操作。


推荐阅读