##gem bcryptとは?
パスワードをハッシュ化するための関数を提供してくれるgemです。
Gemfileに既にコメントアウトされてあるので、コメントアウトを外しbundleします。
#ハッシュ関数とは?
適当な値を中に放り込むと適当な値を返してくれる関数のこと。
bcryptで生成されたハッシュ値は60文字で出力されます。
文字列 → ハッシュ関数生成 → カラム保存
という流れになります。
/model
def password=(raw_password)
if raw_password.kind_of?(String)
self.hashed_password = BCrypt::Password.create(raw_password)
elsif raw_password.nil?
self.hashed_password = nil
end
end
引数をとり、kind_ofメソッドで文字列かどうかの判定を入れています。stringクラスであればtrueが返ります。
BCrypt::Password.createでインスタンスを生成し、カラムであるhashed_passwordに代入しています。
参考:https://hiyo-ac.hatenablog.com/entry/2019/01/27/160644
https://wa3.i-3-i.info/word11948.html