什么可以是用户帐户的唯一标识符?
Posted
技术标签:
【中文标题】什么可以是用户帐户的唯一标识符?【英文标题】:What can be a unique identifier for user account? 【发布时间】:2015-03-14 13:04:18 【问题描述】:我需要在服务器上为用户帐户保存一些唯一标识符,以便我可以在另一个用户设备上确定该帐户标识符已经设置。但我不知道什么可以是帐户的唯一 ID,以及如何以编程方式获取它?
编辑:
我正在将应用从付费版转移到免费增值版(使用应用内购买)。我需要保存所有购买了应用程序的用户。所以我创建了服务器并希望将所有用户保存在那里。所以我需要帐户的唯一值,这样用户就可以在他的其他设备上恢复所有购买。
【问题讨论】:
在 iCloud 中存储一个包含用户登录信息的文件,并让它同步到所有拥有该应用的设备? @JoachimIsaksson 你能写一个代码示例如何获取它吗? 【参考方案1】:我建议使用用户的电子邮件地址。您将如何获得它是提示用户使用它。
然后使用通常的验证,您向该地址发送一封电子邮件,其中包含用户单击的链接,该链接发送回带有唯一密钥的 HTTP 响应。
为此,您需要一台服务器。您的应用程序将连接到服务器,发送用户的帐户信息和电子邮件地址,然后服务器将向该电子邮件地址发送一封电子邮件,其中包括一个编码的可点击链接。
可能有现成的服务器库可以做到这一点。我必须做一些研究才能找到它们。我建议你这样做。
【讨论】:
我想我不需要所有这些。我只需要一些我可以获得的帐户的唯一信息。据我所知,不可能从 icloud 获取用户电子邮件 请注意,我建议您向 USER 询问他/她的电子邮件,然后通过服务器使用验证电子邮件。如果您不需要“所有这些”,那么您需要提出另一个解决方案。【参考方案2】:如果您不想支持一个用户的多个设备,您可以使用 Vendor-ID,这对于所有 ios-devices 都是唯一的:
UIDevice.currentDevice().identifierForVendor
或作为字符串:
UIDevice.currentDevice().identifierForVendor.UUIDString.
否则你应该知道用户必须在注册时填写某种登录名。
【讨论】:
【参考方案3】:我不知道您是否希望用户启用 iCloud,但如果您希望这样做,为什么不通过获取 NSFileManager 的 ubiquityIdentityToken 属性的值来检查 iCloud 可用性,如下所示:
let token = NSFileManager.defaultManager().ubiquityIdentityToken
根据 iCloudDesignGuide,“属性的值是代表当前活动的 iCloud 帐户的唯一令牌。”这就是我认为你想要得到的。您应该能够使用此值,即使您没有在 iCloud 中存储任何内容,只要您为应用程序配置了它并且他们已登录并启用了“iCloud Drive”。
【讨论】:
以上是关于什么可以是用户帐户的唯一标识符?的主要内容,如果未能解决你的问题,请参考以下文章
VBS脚本获取安全标识符SID(Security Identifiers)的方法
通过同步帐户使用不同计算机时 Outlook 中的唯一约会标识符