書いているのは app/models/user.rb
attr_accessor :remember_token #仮想トークン作った
#永続セッションのためにユーザーをデータベースに記憶する
def remember
self.remember_token = User.new_token #ランダムなトークンをリメンバートークンにつっこむ
update_attribute(:remember_digest, User.digest(remember_token)) #DBに保存 今作ったリメンバーをハッシュ化してDBのダイジェストに入れる)
end
--
ランダムなトークンを返す
def User.new_token
SecureRandom.urlsafe_base64
end
渡された文字列のハッシュ値を返す
def User.digest(string)
cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST :
BCrypt::Engine.cost
BCrypt::Password.create(string, cost: cost)
end
--
cookies.permanent[:remember_token] = remember_token #20年のクッキー完成