Rails 一日一つメソッド (Day08) has_secure_passwordメソッド
Rails 一日一つメソッド (Day8) has_secure_passwordメソッド
has_secure_passwordメソッド
RailsのActive Model内に実装されているメソッドで、ModelでユーザーのPasswordを安全に暗号化しPassword有効性検索及び認証機能を提供する。
has_secure_password動作方法
1. Password暗号化
- has_secure_passwordはユーザーのPasswordを暗号化しpassword_digestに保存する。
2. PasswordとPassword確認
- password, password_confirmationの属性が生成され password, password == confirmation の値が一致することを自動に検証する。
3. ユーザー認証
- has_secure_passwordはauthenticateメソッドを提供し、メソッドは与えられた平文のPasswordと一致することを確認する。
一致する場合 : オブジェクトを返す。
一致しない場合 : falseを返す。
has_secure_password例題
1. bcrypt gem 作成
Gemfile
gem "bcrypt", "~> 3.1.7"
$ bundle install
2. Modelにメソッド作成
class User < ApplicationRecord
has_secure_password
end
3. Database Migration
rails generate
rails g migration password_digest_to_users password_digest: string
rails db:migrate
注意事項
- password_digest は必ずDatabaseに存在すること
https://github.com/designAR/rails_method_study/tree/day08_has_secure_password
GitHub - designAR/rails_method_study
Contribute to designAR/rails_method_study development by creating an account on GitHub.
github.com