首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为用户创建唯一标识符以进行跟踪?

问如何为用户创建唯一标识符以进行跟踪?
EN

Stack Overflow用户
提问于 2012-03-03 09:30:02
回答 3查看 456关注 0票数 0

我想能够添加一个用户参考参数从我的网站发出的所有邀请链接…示例:

http://site.com/invited_by?=ajraux

如何为站点上的所有用户生成像"ajraux“这样简短的代码?它需要是数据库中的一个字段吗?可以当场创建吗?网络公司是如何做到这一点的?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-03 11:36:23

您可以创建随机数并以36为基数对其进行编码,如下所示:

代码语言:javascript
复制
rand(1e12).to_s(36)

为每个用户在第一次使用时生成一个,并将其与用户存储在一起。在随机令牌上添加一个唯一约束(在您的模型和数据库中),并在遇到唯一性冲突时生成一个新的约束。您可能希望在某个地方记录一个警告,如果您需要尝试超过5次才能获得唯一的值,则会看到该警告;如果您开始收到很多警告,则将该1e12提升到1e15 (或更高)。

这将为您提供附加到每个用户的随机外观的令牌,令牌将是URL安全的,它们快速且易于生成,您不应该获得那么多冲突,并且很容易从令牌返回到用户。

票数 4
EN

Stack Overflow用户

发布于 2012-03-03 09:35:26

这样做的一种方法是使用用户的唯一标识符,比如数据库中的"id",但这也很危险,因为您透露了太多关于数据库的信息。

因此,您可以在前面的情况下添加一些特性,并对id进行加密和解密,这样当id在url中时,它就会被加密,然后当您收到它时,您就可以解密它并使用它。

票数 0
EN

Stack Overflow用户

发布于 2012-11-11 16:30:54

正如cjapes所说,使用ID不是一个好的解决方案,而u的答案太短对大多数情况都很好。然而,如果你有一个像about.me那样提供虚假网址的网站,那么每个用户都会有一个永久链接类型的列来存储他们的虚假网址。在构建URL时,您可以只使用该列中的值。

在接收端,您可以执行以下操作:

代码语言:javascript
复制
@referring_friend = User.find_by_permalink(params[:permalink])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9542568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档