LoginSignup
43
41

More than 5 years have passed since last update.

Railsのhas_secure_passwordとは

Posted at

Railsの「has_secure_passwordメソッド」について解説する。

使い方としては、以下のようにモデルに定義する。

user.rb
class User < ApplicationRecord
  .
  .
  .
  has_secure_password
end

上記のようにモデルにこのメソッドを追加すると、次のような機能が使えるようになる。

  • セキュアにハッシュ化したパスワードを、データベース内のpassword_digestという属性に保存できるようになる。
  • 2つのペアの仮想的な属性(passwordとpassword_confirmation)が使えるようになる。また、存在性と値が一致するかどうかのバリデーションも追加される 。
  • authenticateメソッドが使えるようになる(引数の文字列がパスワードと一致するとUserオブジェクトを、間違っているとfalseを返すメソッド)。

ちなみに、この魔術的なhas_secure_password機能を使えるようにするには、1つだけ条件がある。それは、モデル内にpassword_digestという属性が含まれていること。

参考:Railsチュートリアル

43
41
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
43
41