LoginSignup
2
1

More than 5 years have passed since last update.

has_secure_token でトークンをもっと長いやつにする

Posted at

has_secure_tokenSecureRandom.base58(24) で 24 バイトのトークンを生成するだけで、長さを指定するオプションはありません。

Pull Request はいくつか出ているようですが、今の所取り込まれるる様子はなし。
(Rails 5 から has_secure_token は Rails に取り込まれ、元の gem はバックポート用という立ち位置になったので、まずは Rails に PR せよ、という流れ)

というわけでとりあえずやってしまいたい、というときは対象のクラスに以下のように generate_unique_secure_token というクラスメソッドをオーバーライドすれば良い。

class Foo < ActiveRecord::Base
  class << self
    def generate_unique_secure_token
      SecureRandom.base58(32)
    end
  end
end

今回はバイト数を 32 に増やすだけだが、生成方法自体差し替えることもできる。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1