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を使って付け加える


この記事が気に入ったらサポートをしてみませんか?