我想能够添加一个用户参考参数从我的网站发出的所有邀请链接…示例:
http://site.com/invited_by?=ajraux
如何为站点上的所有用户生成像"ajraux“这样简短的代码?它需要是数据库中的一个字段吗?可以当场创建吗?网络公司是如何做到这一点的?
谢谢
发布于 2012-03-03 11:36:23
您可以创建随机数并以36为基数对其进行编码,如下所示:
rand(1e12).to_s(36)为每个用户在第一次使用时生成一个,并将其与用户存储在一起。在随机令牌上添加一个唯一约束(在您的模型和数据库中),并在遇到唯一性冲突时生成一个新的约束。您可能希望在某个地方记录一个警告,如果您需要尝试超过5次才能获得唯一的值,则会看到该警告;如果您开始收到很多警告,则将该1e12提升到1e15 (或更高)。
这将为您提供附加到每个用户的随机外观的令牌,令牌将是URL安全的,它们快速且易于生成,您不应该获得那么多冲突,并且很容易从令牌返回到用户。
发布于 2012-03-03 09:35:26
这样做的一种方法是使用用户的唯一标识符,比如数据库中的"id",但这也很危险,因为您透露了太多关于数据库的信息。
因此,您可以在前面的情况下添加一些特性,并对id进行加密和解密,这样当id在url中时,它就会被加密,然后当您收到它时,您就可以解密它并使用它。
发布于 2012-11-11 16:30:54
正如cjapes所说,使用ID不是一个好的解决方案,而u的答案太短对大多数情况都很好。然而,如果你有一个像about.me那样提供虚假网址的网站,那么每个用户都会有一个永久链接类型的列来存储他们的虚假网址。在构建URL时,您可以只使用该列中的值。
在接收端,您可以执行以下操作:
@referring_friend = User.find_by_permalink(params[:permalink])https://stackoverflow.com/questions/9542568
复制相似问题