ニートプログラマーの就職計画

再びはたらく日を目指して

ログインの仕組みーーCookieとセッション

なんとなくふわっと理解(したつもり)になっていたログインの仕組みについてまとめる。

ログインの仕組み

Cookieとセッションの関係

  • ログイン機能はCookieとセッションを使って実現する
    • ログイン機能はセッションだけでも実現できるが、セッションだけだとブラウザを閉じたときに維持できない
    • ブラウザを閉じてもログイン情報を維持するためにCookieを使う

ログイン処理の流れ

  • ユーザーが正しいログイン情報(例:メールアドレスとパスワード)を入力したときにセッションを開始する
    • セッションにはログイン中のユーザー情報が入っている(例:Session(name -> "山田"))
    • セッションを参照することでページを移動してもログイン中のユーザー情報を保持できる
  • セッション情報をCookieに保存する
    • (例:hogeCookie -> XXXXXX(ハッシュ化したセッション情報))
      • Cookieはユーザーによって編集可能なので、値はハッシュ化する必要がある
      • ハッシュ化していないとCookieを編集して他のユーザーとしてログインできてしまう
    • Cookieに保存することで、ブラウザを閉じてもセッション情報を引き継げる
  • リクエストに含まれるCookieからセッション情報を取得する

Cookie

  • ブラウザに保存されるテキスト情報(キーと値の形式)
  • ブラウザを閉じても維持される(有効期限あり)
  • ユーザーは確認、削除、編集可能

セッション

  • 一連の処理の始まりから終わりまでを表す概念
  • ブラウザを閉じるとセッションは終了する
  • セッション情報(キーと値形式)はWebサーバーにファイルとして保存される
    • ユーザーは確認、削除、編集できない

まだ怪しい部分もありますが、一旦ここまで。