Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Railsのhas_secure_passwordとは

More than 1 year has passed since last update.

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チュートリアル

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away