我有一个用guid很容易解决的问题.

特别是,对于密码重置工作流,我希望向用户的邮箱发送GUID令牌,并让他们使用令牌重置密码.由于guid是唯一的,所以它非常安全,可以为我发送邮箱节省密码,这很危险.

我注意到有一个uuid gem @ rubyforge,但它看起来很旧,它会将内容写入文件系统.

有人知道其他可以创建全球唯一标识符的Ruby 吗?

我知道我可以回到:

(0..16).to_a.map{ |a| rand(16).to_s(16) }.join 

但它看起来并不是一个合适的指南...

推荐答案

从Ruby 1.9开始,uuid生成是内置的.使用SecureRandom.uuid功能.

例如:

require 'securerandom'
SecureRandom.uuid # => "96b0a57c-d9ae-453f-b56f-3b154eb10cda"

Ruby相关问答推荐

Rbenv说未安装已安装的版本

警告 Selenium [弃用] Manager#logs 已弃用.使用 Chrome::Driver#logs 代替

如何解密在 sjcl.js 中使用 ruby​​ 创建的 AES-256-GCM

仅在模块中列出方法?

在ruby中反转数组的顺序

define_method:如何动态创建带参数的方法

Ruby 中的 class() 与 type()

如何在 Ruby 中初始化 Hash 中的数组

Rails 类 << self

格式化 Ruby 的漂亮打印

如何引用全局变量和类变量?

`respond_to?` 与 `respond_to_missing?`

rails 控制台、RVM 和 readline 的问题

如何获取当前 rake 任务的 PID?

Ruby 数组中的奇数(或偶数)条目

Ruby on rails - 静态方法

是什么让 Ruby 变慢了?

如何将多个元素添加到数组中?

Docker for Mac - mkmf.rb 找不到 ruby​​ 的头文件

传递块时 Array#sort 如何工作?