1. ホーム
  2. ruby

[解決済み] RubyでGUIDを生成する

2022-04-27 20:23:10

質問

GUIDを使うと本当に簡単に解決する問題があります。

特に、パスワードリセットのワークフローでは、ユーザーのメールにGUIDトークンを送信し、そのトークンを使ってパスワードをリセットさせたいと考えています。GUIDは一意であるため、これはかなり安全で、リスクの高いパスワードをメールで送信する手間を省くことができます。

があることに気づきました。 uuid gem @ rubyforge が、かなり古そうだし、ファイルシステムにいろいろ書き込んでいる。

グローバルに一意な識別子を作成できる他のgemsをご存知の方はいらっしゃいますか?

挫折すればいいんだろうけど。

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

しかし、それは本当に適切なGUIDのように見えることはありません....

どのように解決するのですか?

Ruby 1.9では、uuidの生成はビルトインされています。 以下のものを使ってください。 SecureRandom.uuid 関数を使用します。

例えば

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