Laravel11でのミドルウェアの新規登録方法:CSRF除外なども解説

Laravelバージョンアップ・ニュース

Laravel11では、これまでとミドルウェアの登録方法が色々と変わっています。

Laravel10までは app/Http/Kernel.phpにミドルウェアを登録していましたが、Laravel11では、bootstrap/app.phpにミドルウェアを登録します。

本記事では、Laravel11でのミドルウェアの登録方法を分かりやすく説明しますね。

Laravel10からの違いで悩んだら、ご覧ください。

Laravel11でのミドルウェアの登録方法

たとえば、adminユーザーのみが見れるページを作るとします。

ミドルウェアはこれまでどおり、下記コマンドで作成可能です。コマンド実行後、app/Http/Middlewareの中にミドルウェアファイルができます。

今回はAdminCheckMiddlewareを作りますが、ミドルウェアの名前はお好みで変えてください。

あらかじめ、usersテーブルに “role”カラムを作成しておき、カラムに”admin”と入っていたら、admin(管理者)ユーザーということにします。コード例は次のとおりです。

【AdminCheckMiddlewareコード例】

作成したミドルウェアを登録します。bootstrap/app.phpファイルに次のようにいれます。

【bootstrap/app.php】

AdminCheckMiddlewareを使用する際に、admin.checkというエイリアスを使います。エイリアスとは、本来の名前やクラス名の代わりに、より短く簡単な名前を付ける仕組みです。

エイリアスは「あだ名」と考えてしまうと分かりやすいですよ。

これでミドルウェアができました。実際に、管理者しか見れないページにミドルウェアを設定するには、次のようにルート設定を記述します。

【web.php】

おまけ:ミドルウェアの実行順序

なお、Webアプリ全体に適用されるグローバルミドルウェアというものがありますが、このグローバルミドルウェアよりも先、または後にミドルウェアを実行したい場合は、appendやprependを使用します。

公式マニュアルには次のように書かれています。

appendメソッドは、ミドルウェアをグローバルミドルウェアリストの最後に追加します。ミドルウェアをリストの先頭に追加したい場合は、prependメソッドを使うべきです。

https://readouble.com/laravel/11.x/ja/middleware.html

appendを使用すると、指定したミドルウェアはグローバルミドルウェアよりも後に実行されます。prependを使用すると、指定したミドルウェアはグローバルミドルウェアよりも先に実行されます。

【append利用例】

CSRF除外設定

なおCSRF保護から除外したいパスは、これまではMiddleware/VerifyCsrfTokenにいれていました。Laravel11では、これもbootstrap/app.phpに記述します。たとえば/stripeというパスをCSRF除外にするには、次のように書きます。

【bootstrap/app.php】

TrimStrings除外設定

TrimStringsから除外するパスも同じような形で、bootstrap/app.phpに記述します。たとえば/passwordというパスをTrimStrings除外にするには、次のように書きます。

*TrimStrnigsは、HTTPリクエストで送信されたデータの文字列値から、先頭と末尾の空白を自動的に削除(トリム)するミドルウェアです。

さいごに

以上、Laravel11からのmiddlewareについてでした。下記公式マニュアルも参考にしてください。

Laravel11になってから変わった他の部分については、下記記事にまとめています。

Laravelバージョンアップ・ニュース

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新のLaravel11版テキストに加え、Laravel8版・Laravel9版・Laravel10版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel11版テキストに加え、Laravel8版・Laravel9版・Laravel10版もご用意しています♪

【AWS関連・Webアプリ開発・生成AIのAPI活用のご相談承ってます】
お気軽にお声がけください。
御社にとって、最善の方法をご一緒に考えてまいります。
Zoomミーティング実施中。サンプルアプリご利用可能です。

お問合せフォーム

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

最新版Laravel11用のサポートガイドご用意しています。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる
Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました