Why It Fits
選ぶ理由
- サーバ側で即時に失効できる
- ブラウザと相性が良い・実績豊富
- トークン中身が漏れない
Product Profile
サーバ側セッション
サーバにセッションを保持し、Cookie のセッション ID で本人を識別する古典的で確実な方式。サーバ側で即座に失効できるのが強み。
Specifications
Introducing
Decision Guide
採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。
Why It Fits
Trade-offs
Deep Dive
セッション認証は、ログイン後の状態をサーバ側に保持し、利用者にはセッション ID だけを Cookie で渡す、伝統的な Web 認証方式です。
サーバは「このセッション ID は誰のものか」を内部に記録しておき、リクエストごとに送られてくる ID と突き合わせて本人を識別します。状態をサーバが握っているのが特徴です。
おおまかな流れは次のとおりです。
Set-Cookie: session_id=abc123; HttpOnly; Secure; SameSite=Lax
セッションの実体(ユーザー情報や有効期限)はサーバ側にあり、ID はそれを指す引換券のような役割です。
ステートレスな JWT との対比で捉えると分かりやすいです。
ログアウトや強制的な無効化を確実に効かせたい場合、サーバ側で状態を管理できるセッション方式が扱いやすくなります。
一般的な Web アプリで、確実なログアウトやセッション管理を重視するなら有力です。Cookie には HttpOnly・Secure・SameSite を適切に設定し、盗まれにくくします。
サーバを複数台にスケールさせると、どのサーバでも同じセッションを参照できるよう、Redis などの共有ストアが必要になります。ここが単一障害点や性能のボトルネックにならないよう設計します。
Implementation View
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
伝統的な Web アプリ
種別: サーバ側セッション / 目的: 認証 / トークン/形式: セッション ID(Cookie)
ブラウザと相性が良い・実績豊富
サーバにセッション保持が必要(スケール時に共有が要る)
Best Fit