2012-01-31 93 views
0

我有一个可下载的Ruby客户端,用户可以在他们拥有的各种设备上进行安装。客户端经常运行,并将各种数据发送到服务器。唯一标识每个用户的某个设备

我想能够唯一标识每个用户的设备,以便我可以告诉哪个设备各种请求来自。

  • 理想的标识符将存在跨平台的,这样我可以用的是OSX上的Windows,安卓等
  • 没有必要为它是集合所有计算机中是唯一的,其中刚刚独特设置单个用户的计算机。
  • 如果可以避免,我宁愿不写我自己的标识符到文件系统。
  • 标识符应该保留。如果可能的话永久。

这样做最简单的方法是什么?

回答

0

到目前为止,我还没有找到一个令人满意的方式来做到这一点,而不写入用户机器。

目前,我使用UUID gem向文件系统写入一个36字符唯一标识符,然后在必要时读取它。

如果您正在使用> Ruby 1.9.2的另一个选择是使用SecureRandom.uuid method它做同样的事情。但是,该方法在Ruby 1.8.7中不可用。

1

sysinfo宝石,使用sysinfo.to_s例如,你会得到像ruby-unix-osx-i386字符串。

但是,如果用户拥有两台具有相同体系结构的机器,那么这将不起作用。另外我不确定sysinfo是否支持Android这样的平台。