【87日目】【1日20分のRailsチュートリアル】【第8章】ログアウトで保持しているユーザー情報を削除する
今日は「8.4.3 ユーザーを忘れる」から。
8.4.3 ユーザーを忘れる
ユーザーがログアウトできるようにするために、ユーザーを記憶するためのメソッドと同様の方法で、ユーザーを忘れるためのメソッドを定義します。
どうでもいいところなんだけど「ユーザーを忘れる」ていう表現になんか違和感がある、、、「保持しているユーザー情報を削除する」ってことだよね。
「記憶」トークンだから「忘れる」という表現になるのかな。
Userモデルにremember_digest
をnilで更新するメソッドを追加。
app/models/user.rb
# ユーザーログインを破棄する def forget update_attribute(:remember_digest, nil) end
終了するには、forgetヘルパーメソッドを追加してlog_outヘルパーメソッドから呼び出します。
forgetヘルパーメソッドでcookiesの情報を削除する。
app/helpers/sessions_helper.rb
# 永続的セッションを破棄する def forget(user) user.forget cookies.delete(:user_id) cookies.delete(:remember_token) end # 現在のユーザーがログアウトする def log_out forget(current_user) :
ログアウト処理を実装できたので実動作見てみよう。
サーバーを起動して
$ rails server -b $IP -p $PORT
テストアカウントでログイン。
cookieが保存されていることを確認。
ログアウトするとremember_token
のcookieが削除されていることを確認。
ちゃんとログアウトできるようになりました。
今日の作業時間は【19分】。
次は「8.4.4 2つの目立たないバグ」から。