我从here看到has_secure_token
可以为(用户)模型中的新记录生成随机令牌。如何简单地生成随机令牌而无需为模型做呢? (即,假设某个应用没有模型,或者说真的很简单,则它会运行一些(最好是非常简单的)方法,并且它应该返回一个随机字符串,例如pX27zsMN2ViQKta1bGfLmVJE
>
我尝试了其他答案中推荐的宝石SecureRandom和digest,但似乎都没有成功捆绑安装(SO答案很旧,所以也许这些宝石已被弃用?)-我正在使用红宝石2.5.1和导轨5.2.3
我的目标只是生成令牌以用作API的键,因此,我基本上只需要可以在url中安全使用的随机生成的字符串,也许可以指定令牌长度的方法(但是我可以拿走我现在能得到的东西!)
答案 0 :(得分:2)
只需使用SecureRandom
。它不是必须安装的宝石。它内置在Ruby中:
⇒ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin18]
⇒ irb
2.5.1 :001 > require 'securerandom'
=> true
2.5.1 :002 > SecureRandom.hex(32)
=> "89d45edb28859a905672b707c8f7599f766d12074584ef48a997230dfc0e0998"
2.5.1 :003 > SecureRandom.base64(12)
=> "KaZbhQ7o7U/f9pMs"
2.5.1 :004 > SecureRandom.uuid
=> "ade17ef5-0943-4c70-b417-df7c96c198cd"