会社の研修でRailsチュートリアルを実施しましたが、8~9章のログイン周りがややこしく、ふわっとした理解しか得られませんでした。しっかり理解したいなとー思っていたので、ログイン時の流れをフローにして整理したところ、意外とスッキリ理解できたので、記事にしてみました。
*図が小さく見辛いですが、ご容赦下さい。
押さえておかないと、こんがらがる点
前提として、認識しておいた方が良いと思う点です。
個人的には、この辺りを把握できたことで理解の大きな助けになりました。
-
セッションはサーバーで管理されていない
セッション情報はサーバー側で保持されていると思うかもしれないが、Railsのデフォルトではクッキーに保存されている。
参考:Railsのセッション管理には何が最適か - Qita
-
一時ログインと永続ログイン、結局どちらもクッキーを使っている
上記のようにセッションをクッキーで管理しているので、一時ログインには有効期限が一時的なクッキー(=セッションを保持するクッキー)を使い、永続ログインには有効期限が20年のクッキーを別で発行して利用している。
-
セッション用のクッキーはログインする前から作られている
ログイン後にセッション用クッキーが作られると思って検証ツールを眺めていたが、新しくクッキーは作られていなかった。どうやら、デフォルトで生成されている"_アプリ名_session"という名前のクッキーがセッション情報を保持しており、そこにログインに必要な情報が追記される形のようだ。
(図解)ログインするときの流れ
コードの一行一行が、何をしているかを書きました。
これを読めば、ログイン処理の裏で何をしているか理解する助けになると思います。
ログイン後に再度サイトにアクセスする時の流れ
追記予定です。