laravelのsessionについてまとめる。
sessionってなんやねん
要はリクエストをまたいで値を保持する仕組み。
Laravelでは「サーバー側に保存」されるのが基本。
これによって、ページが切り替わっても情報を保持できる。
どういう時に使う?
・フォームの値を別ページでも保持したい時
・ログイン状態を管理したい時
・一度だけ表示するメッセージ(success, errorなど)
・複数画面にまたがる処理(ウィザード形式など)
CookieやLocalstrageとの違いは?
| 種類 | 保存場所 | 保存主体 |
|---|---|---|
| Session | サーバー | Laravel |
| Cookie | ブラウザ | ブラウザ |
| LocalStorage | ブラウザ | JavaScript |
session
サーバー側に保存
ブラウザには session ID だけがCookieとして保存される
セキュリティが高い
Laravelでは自動で管理してくれる
session(['name' => 'Taro']);
session('name'); // Taro
✔ ログイン情報
✔ フォームの一時保持
✔ 重要なデータ
Cookie
・ブラウザ側に保存
・有効期限を設定できる
・サイズ制限あり(約4KB)
・ユーザーに改ざんされる可能性あり
cookie('theme', 'dark', 60);
✔ 軽い設定情報
✔ 言語・テーマ設定など
Localstrage
・JavaScript専用
・有効期限なし(手動削除まで残る)
・サーバーには自動送信されない
・容量が大きい(約5MB)
localStorage.setItem('token', 'xxx');
Laravelでの使い分け
| 目的 | 使うもの |
|---|---|
| ログイン・認証 | Session |
| フォーム入力保持 | Session |
| 一時的な通知 | Session(flash) |
| UI設定 | Cookie |
| JSだけで使う状態 | LocalStorage |
Session:安全・サーバー管理・Laravelの主役
Cookie:軽量・設定向き
LocalStorage:フロント専用・永続保存