不使用登录系统如何识别唯一用户(iOS)

10

我需要一种方法来识别我的应用程序的用户,但不需要登录系统。

我研究了UUID,它为我的问题提供了部分答案,但由于它不是真正的UDID,所以它并不是“真正独特”的:如果用户重新安装应用程序,他会得到一个新的UUID,而这对我来说是行不通的。

是否有一种方法可以获取设备序列号或类似的唯一标识?任何从设备中获取而无需让用户填写任何字段的方法都可以。


如果用户重新安装应用程序,他将获得一个新的UUID,但即使它被更改,它仍然是唯一的。因此,您可以依赖它。 - Malloc
是的,但我无法确定它是否是同一用户;我知道它从未被分配过,也永远不会再次分配,但我无法确定他是否仍然是我的John Doe。 - Gil Sand
你尝试过identifierForVendor或者advertisingIdentifier吗? - jMelnik
这个回答是否回答了你的问题?iOS用户的唯一标识 - ldoogy
2个回答

6

您可以尝试使用一些在用户的iCloud Key-Value存储中存储的唯一随机字符串。

因此,当用户首次启动您的应用时,您会发现他的iCloud没有存储任何值,然后您生成并存储它。当用户下一次启动应用程序时,您将看到此值并相应地采取措施。

更重要的是,即使用户重新安装您的应用程序或对设备进行出厂设置,您仍然能够通过他的iCloud中的值确定用户身份。


也许可以提供一些代码或链接来说明这个问题? - Esqarrouth
我会尝试从旧项目中找到示例……找到后会立即发布。 - Vanger
1
抱歉,我刚刚查了一下,不能分享我旧项目的代码。但是我记得有一个库可以做到完全必要的事情:https://github.com/fabiocaccamo/FCUUID,你可以看一下。 - Vanger

5
过了一段时间,我们决定获取唯一用户ID不可靠、不可行或者真的很烦人,因此我们决定使用他们加密格式化的电话号码,具体过程如下:
  • 要求输入电话号码和国际代码*(+1、+32等);
  • 程序验证电话号码完整性;
  • 如果满意,则要求用户通过警报进行验证;
  • 如果确认无误,则发送PIN码并等待验证;
  • 如果有效,则注册到数据库。
用户的用户名为格式化的电话号码(例如+32495555556),然后对该字符串进行SHA-256哈希处理,最后将超长的字符串保存到数据库,并用此识别所有人。
如有任何问题,请在此提出以便我给予澄清。如果您有更好的想法,我仍然乐意听取建议。

2
SHA-256 不是加密。 - zaph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接