ProgateのRuby on Railsまとめ⑨
【Ruby on Rails Ⅺ】
*パスワードの安全な取り扱い
📖ハッシュ化されたパスワードを保存するために、よく使う機能がパッケージ化されたgemというツールを利用
※Gemfileファイルに
gem ′gemの名前′ ′バージョン指定′
とインストールしたいgemを記述する
※バージョン指定しない場合は、最新のバージョンがインストールされる
🌟gem ′bcrypt′
→記述した後、ターミナルで$bundle installを実行すると、インストールできる
📖パスワードを扱うUserモデルに、has_secure_passwordメソッドを追加
→bcryptをインストールしたので使える
📖ハッシュ化されたパスワードは、password_digestカラムに保存される
→必要ないのでpasswordカラムを削除
🌟$rails g migration change_users_columns
→複数のカラムを変更するためマイグレーションファイルを作成
🌟def change
add_column :users,:password_digest,:string
remove_column :users,:password,:string
end
→マイグレーションファイルで変更記述。ファイル削除はremoveを使う
※データベースへの変更反映を忘れない!
📖 password_digestカラムにハッシュ化されたパスワードを保存するためには今まで通りpasswordに値を代入する。has_secure_passwordメソッドで自動でハッシュ化されて、password_digestカラムに保存されるので、コードは変更しなくて良い
🌟@user && @user.authenticate(params[:password])
→ has_secure_passwordメソッドを有効にすると、authenticateメソッドが使えるようになる。渡された引数をハッシュ化し、password_digestの値と一致するか判断してくれる。
→上の条件を、ログインアクション内にifを使って付け加える
この記事が気に入ったらサポートをしてみませんか?