らくだ🐫にもできるRailsチュートリアル|8.3(と8.4)

8.3 ログアウト

ログインが出来たらログアウトも出来たい!!

セッションを破棄するdestroyアクションも、引き続き同じ要領で作成することにします。ただし、ログインの場合 (リスト 8.15とリスト 8.25) と異なり、ログアウト処理は1か所で行えるので、destroyアクションに直接ログアウト処理を書くことにします。

ログインの場合と異なり~→登録済ユーザーのログインとユーザー登録時のログインの2パターンあった

ログアウト処理の仕組み

sessionからuser_idを削除することでlog_inメソッドの実行結果を取り消す

このコードを実行することにより現在のユーザーがnilになる
→Sessionヘルパーにlog_outメソッドとして定義

インスタンス変数@current_userをnilにする必要があるのは、@current_userがdestroyアクションより前に作成され (作成されていない場合)、かつ、リダイレクトを直接発行しなかった場合だけです。(中略)ここではセキュリティ上の死角を万が一にでも作り出さないためにあえてnilに設定しています。

sessionssコントローラのdestroyアクションに、上記で定義したlog_outメソッドを使う

ログアウトのテスト

  • ユーザーがログアウトしてルートURLにリダイレクトされる
  • ログイン用リンクが再度表示
  • ログアウト用リンクとプロフィール用リンクが非表示

8.2.4のテストに上記の手順を組み込む

セッションのdestroyアクションの定義とテストも完成したので、ついにサンプルアプリケーションの基本となる「ユーザー登録・ログイン・ログアウト」の機能すべてが完成しました

演習

  1. ブラウザから [Log out] リンクをクリックし、どんな変化が起こるか確認してみましょう。また、リスト 8.31で定義した3つのステップを実行してみて、うまく動いているかどうか確認してみましょう。
  2. cookiesの内容を調べてみて、ログアウト後にはsessionが正常に削除されていることを確認してみましょう。

1.ログアウトするとレイアウトが変更される
 →ログインリンク表示・ログアウトリンク非表示・ユーザー詳細画面へのリンク非表示
2.削除されている

8.4 最後に

セルフプルリクからのセルフ取り込みでリポジトリとデータを揃える
herokuへデプロイ
以下省略

まとめとか感想

便利なヘルパーメソッドをオリジナルアプリを作る時に上手に使えるのだろうか
とか
基本的な、ではあるけど
サインイン→ログイン←→ログアウトが出来る様になって、それっぽくなってきて嬉しい!

らくだ🐫にもできるRailsチュートリアルとは

「ド」が付く素人のらくだ🐫が勉強するRailsチュートリアルの学習記録です。
自分用に記録していますが、お役に立つことがあれば幸いです。

調べたとはいえらくだ🐫なりの解釈や説明が含まれます。間違っている部分もあるかと思います。そんな所は教えて頂けますと幸いなのですが、このブログにはコメント機能がありません💧お手数おかけしますがTwitterなどでご連絡いただければ幸いです