Rails

secure passwordについて

概要

初めてのRailアプリ開発で気になるところ、つまずくところをピックアップ

目的

userテーブルにパスワードをカラムを追加したい

どうやる

user.rb
class User < ActiveRecord::Base
has_secure_password
   #追加
end
gemfile
gem 'bcrypt', '~>3.1.7'
#gemfileの追加
bundle install
rails g migration add_password_digest_to_users
#ユーザーテーブルにパスワードカラムの追加
20+++++++_add_password_digest_to_users.rb
class AddPasswordDigestToUsers < ActiveRecord::Migration
  def change
    add_column :users, :password_digest, :string
  end
end
 rake db:migrate

あらかじめ作成してあるユーザー情報にpasswordを追加し、確認

rails c
user = User.last
id: 1,
 username: "ryoji_tamaki",
 email: "◯◯◯.◯◯@gmail.com",
 created_at: Wed, 00 Nov 2018 00:00:00 UTC +00:00,
 updated_at: Wed, 00 Nov 2018 00:00:00 UTC +00:00,
 password_digest: nil>

#どのように出れば、パスワードのカラム追加に成功しているのがわかる
 user.password = "firstaddpassword"
user.save
 (0.9ms)  commit transaction
=> true

#と出れば成功
 user.authenticate("firstaddpassword")
=> #<User:0x007f9e79bf7998
 id: 1,
 username: "ryoji_tamaki",
 email: "◯◯◯.◯◯@gmail.com",
 created_at: Wed, 07 Nov 2018 00:00:00 UTC +00:00,
 updated_at: Thu, 08 Nov 2018 00:00:00 UTC +00:00,
 password_digest: "xxxxxxxxxxxxxxxx">