RailsのdeviseでCookieを削除してログアウトする

deviseの課題を提出できたので気になってたことをちょっとだけ深堀りしてます。 今回はdeviseでのログイン認証を行っているアプリに対してCookieを削除してログアウトする方法を調べました。

結論

ChromeのDevToolsのApplication タブ内のCookies を選択して対象のValue を削除する。

Cookieを削除してログアウトする

  1. ログイン状態にする
  2. ChromeのDevToolsのApplication タブ内のCookies を確認
  3. Cookies 内のログインに使用しているセッションの値を削除
  4. リロードしてログアウトされていることを確認

1. ログイン状態にする

今回、動作確認に使用したアプリは以下のアプリです。

karlley/fjord-books_app at my-user_page

rails s で起動し、適当なアカウントでログイン状態にします。

2. ChromeのDevToolsのApplication タブ内のCookies を確認

commannd + option + iChromeのDevToolsを開きApplication タブを開きます。 Cookies 内にログインに使用されるセッションの値を確認します。

3. Cookies 内のログインに使用しているセッションの値を削除

確認したセッションの値を削除します。

4. リロードしてログアウトされていることを確認

削除後、Chromeをリロードするとログイン画面にリダイレクトされログアウトされていることを確認できます。

この際に新たにセッションの値が生成されていることが確認できます。 この値はログイン/ログアウトの状態は関係なくChromeをリロードすると値が変化します。 次のログインで使用する値なのかもしれませんがよく分かっていません。

この点については時間を作り調べてみようと思います。

まとめ

Cookie関連はほとんど理解していないなと再確認しました笑 一度時間を作り深堀りする必要がありそうです。

参照

Rails の devise でログインを判定する仕組み | 僕はノマドを証明しようと思う。

Rails の session を完全に理解した - Qiita