我希望为我的邀请模型生成一个唯一的密钥/令牌。用法示例:
mysite.com/invites/XXXXXX
XXXXXX是唯一的密钥/令牌......我使用Rails 5作为我的API并且学习了Rails 5有一种新方法来生成安全令牌,如下所示:
Model
has_secure_token :access_token
当前的Rails方法会创建一个非常长的,不友好的令牌:973acd04bc627d6a0e31200b74e2236
我的问题:对于像Invites这样过期的模型,令牌真的需要那么久,这意味着令牌不是永久性的。理想情况下,我认为使用较短长度的令牌可以提高用户体验,因此令牌对用户来说并不像是一个错误。
是否有人知道有关非永久性令牌(如邀请网址)令牌长度的任何建议?
由于
答案 0 :(得分:1)
令牌真的需要那么久
嗯,并不总是需要。通常在Rails中我们使用SecureRandom来生成这样的唯一令牌。您可以随时获得所需长度的令牌,如下所示。
SecureRandom.hex(10) # => "52750b30ffbc7de3b362"
SecureRandom.hex(3) #=> "71edbe"