ミドルウェアとは
ミドルウェアは、アプリケーションに届くHTTPリクエストを検査・フィルタリングする仕組みです。 リクエストがコントローラーに渡される前後に処理を挟み込めます。 例えば、Laravelには認証ミドルウェアが含まれています。 ユーザーが認証されていない場合はログイン画面にリダイレクトし、認証済みの場合はリクエストをそのままアプリケーション内部に通します。 認証以外にも、ログ記録・CSRFプロテクション・レート制限など、さまざまな目的でミドルウェアを作成できます。Laravel 13のCSRF保護の詳細は CSRFプロテクション を参照してください。ユーザーが定義したミドルウェアは、通常
app/Http/Middleware ディレクトリに置きます。組み込みミドルウェア
Laravelはデフォルトでweb と api の2つのミドルウェアグループを用意しています。
routes/web.php には web グループが、routes/api.php には api グループが自動的に適用されます。
また、よく使うミドルウェアにはエイリアスが設定されており、短い名前で参照できます。
ミドルウェアの作成
make:middleware Artisanコマンドで新しいミドルウェアを作成します。
app/Http/Middleware/EnsureTokenIsValid.php が生成されます。
handle メソッドにリクエストを処理するロジックを記述します。
$next($request) を呼び出すと、リクエストがアプリケーションの次の処理に渡されます。
条件を満たさない場合はリダイレクトやレスポンスを返してリクエストを止めます。
リクエスト前後の処理
ミドルウェアはリクエストの前または後に処理を実行できます。ミドルウェアの登録
グローバルミドルウェア
すべてのリクエストに対してミドルウェアを実行したい場合は、bootstrap/app.php の withMiddleware でグローバルスタックに追加します。
append はスタックの末尾に追加します。先頭に追加するには prepend を使います。
ルートへのミドルウェア適用
特定のルートだけにミドルウェアを適用するには、ルート定義でmiddleware メソッドを呼び出します。
withoutMiddleware を使います。
ミドルウェアエイリアス
長いクラス名に短いエイリアスを定義できます。bootstrap/app.php で設定します。
ミドルウェアグループ
複数のミドルウェアを1つのキーでまとめると、ルートへの適用が簡単になります。bootstrap/app.php で appendToGroup または prependToGroup を使います。
web グループや api グループにミドルウェアを追加する場合は専用のメソッドが使えます。
ミドルウェアパラメーター
ミドルウェアは追加のパラメーターを受け取れます。handle メソッドの $next 引数の後にパラメーターを追加します。
: で区切って指定します。
実例:認証チェックミドルウェア
ログインしていないユーザーをリダイレクトするシンプルな例です。次のステップ
HTTPリクエスト
コントローラーでリクエストデータを受け取る方法を学びます。