【问题标题】:Generate a random token in ruby >= 2.5.1 / >= rails 5在 ruby​​ >= 2.5.1 / >= rails 5 中生成随机令牌
【发布时间】:2019-10-12 03:34:43
【问题描述】:

我可以从here 看到has_secure_token 可以为(用户)模型中的新记录生成随机令牌。我怎样才能简单地生成一个随机令牌而不需要为模型做呢? (即假设一个应用程序没有模型,或者简单地说,运行一些(最好是非常简单的)方法,它应该返回一个随机字符串,如pX27zsMN2ViQKta1bGfLmVJE

我已经按照其他答案中的建议尝试了 gem SecureRandomdigest,但似乎都没有成功捆绑安装(SO 答案很陈旧,所以这些 gem 可能已被弃用?) - 我正在使用 ruby​​ 2.5.1和轨道 5.2.3

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

【问题讨论】:

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


    【解决方案1】:

    只需使用SecureRandom。它不是您必须安装的 gem。它内置在 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"
    

    【讨论】:

    • 为了将来参考,你如何知道你必须安装哪些 gems 以及哪些是内置的?
    • 很多不同的方式。您可以查看standard library APIcore APIhere。您可以查看thisthis 之类的外部资源,但我不知道它们是否是最新的。另见here
    猜你喜欢
    • 2014-11-24
    • 2016-01-24
    • 2014-04-16
    • 2016-04-25
    • 2015-01-05
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 2018-12-21
    相关资源
    最近更新 更多