在ruby> = 2.5.1 /> = rails 5中生成随机令牌

时间:2019-05-26 06:18:03

标签: ruby-on-rails ruby ruby-on-rails-5

我从here看到has_secure_token可以为(用户)模型中的新记录生成随机令牌。如何简单地生成随机令牌而无需为模型做呢? (即,假设某个应用没有模型,或者说真的很简单,则它会运行一些(最好是非常简单的)方法,并且它应该返回一个随机字符串,例如pX27zsMN2ViQKta1bGfLmVJE

我尝试了其他答案中推荐的宝石SecureRandomdigest,但似乎都没有成功捆绑安装(SO答案很旧,所以也许这些宝石已被弃用?)-我正在使用红宝石2.5.1和导轨5.2.3

我的目标只是生成令牌以用作API的键,因此,我基本上只需要可以在url中安全使用的随机生成的字符串,也许可以指定令牌长度的方法(但是我可以拿走我现在能得到的东西!)

1 个答案:

答案 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"