我正在研究分析工具。我希望能够合理地识别独特的用户(或更可能是独特的机器) - 某种程度的不准确性是可以的。我需要同时支持低级设备(Android/iOS)和Web(JS/Flash),因为我正在Haxe建立客户端。 (另一个需要注意的是我不能使用语言特定的API。)超越Mac地址:独特识别服务器端的设备
以前,我用(ip, mac address)
的元组来唯一标识用户。但是,在Flash(和Javascript)中,您无权访问该mac地址。我想到我应该在服务器端存储和管理身份,也许使用GUID。客户端会从服务器请求GUID(或某种ID),并将其用于来自同一设备的任何后续请求。
但是,我不确定GUID是否是一个好主意;或者如果我应该用知识产权或其他信息来补充它。 (我有机会获得从客户端得到IP地址。)
客户机上的工作流程是:
- 检查存储的唯一标识符
- 如果它存在,所有的发送请
- 如果没有,拨打电话,请求一个唯一的标识符,并将其存储
- 发送唯一标识符与所有后续调用
当然,这只会在每个设备上都是唯一的,并且可能会通过删除本地设备上的标识符来获得两个用户的误报。
在服务器端,它会像生成一个新的GUID一样简单,并在请求唯一标识符时将其发送给用户。
这是一个很好的方法吗?有更好的方法吗?
+1这看起来很有前途。它没有解决*什么*存储。 – ashes999
你想存储什么?您发出一个持久cookie,然后浏览器负责将其存储在客户端计算机上。如果请求中不存在客户端未知或尚未存储cookie,则会发出此cookie。您应该在将来将其设置为相当远的日期时设置此Cookie的“Expires”属性,以确保客户端在此期间的所有后续请求中发送此Cookie的“Expires”属性。而且由于即使客户端关闭浏览器,cookie也是持久的,因此它将被存储。 –