カテゴリ: Laravel 更新日: 2025/12/26

Laravelのミドルウェアでリクエスト情報をチェックする方法を徹底解説!初心者でもわかる実践ガイド

Laravelのミドルウェアでリクエスト情報をチェックする方法
Laravelのミドルウェアでリクエスト情報をチェックする方法

先生と生徒の会話形式で理解しよう

生徒

「Laravelで送られてくるリクエスト情報って、どうやってチェックできるんですか?」

先生

「Laravelにはミドルウェアという仕組みがあって、その中でリクエスト内容を確認したり加工したりできますよ。」

生徒

「ミドルウェアって名前は聞いたことがありますが、何をするものなのかはよくわかりません…」

先生

「ミドルウェアはページに入る前に通る“関所”のようなもので、そこでリクエスト情報をチェックできます。例えばIPアドレスを調べたり、特定の値があるか判定したりできます。」

生徒

「なるほど!実際にどうやって作るのか知りたいです!」

先生

「それではLaravelのミドルウェアでリクエストを検査する方法を丁寧に見ていきましょう。」

1. ミドルウェアとは?

1. ミドルウェアとは?
1. ミドルウェアとは?

Laravelのミドルウェアは、ページを表示する前に必ず通るチェックポイントのような仕組みです。例えば、送られてきたリクエストに含まれる情報を調べたり、特定の条件が整っていない場合に別のページへ移動させる処理を行ったりできます。

プログラミングが初めての人は、ミドルウェアを「入り口に立っている門番」とイメージすると理解しやすくなります。この門番は「この人の情報は正しいか?」「許可されたIPアドレスからのアクセスか?」などを確認してからページへ進ませます。

2. ミドルウェアでリクエストをチェックする基本の流れ

2. ミドルウェアでリクエストをチェックする基本の流れ
2. ミドルウェアでリクエストをチェックする基本の流れ

ミドルウェアでリクエスト情報をチェックする流れはとてもシンプルです。

まずミドルウェアを作成し、その中でリクエスト内容を取得して判定します。例えば「特定のヘッダーがついているか」「IPアドレスが許可されたものか」などを調べられます。

リクエストはLaravelのアプリケーションに入る時点で$requestという形で渡されるため、ミドルウェアの中でそのまま扱えます。


public function handle($request, Closure $next)
{
    // ここでリクエスト情報をチェック
    return $next($request);
}

3. ミドルウェアを作成する手順

3. ミドルウェアを作成する手順
3. ミドルウェアを作成する手順

ミドルウェアはartisanコマンドを使って簡単に作成できます。


php artisan make:middleware CheckUserAgent

このコマンドでapp/Http/Middleware内にファイルが生成されます。その中でリクエスト情報を自由にチェックできます。

4. リクエストヘッダーをチェックする例

4. リクエストヘッダーをチェックする例
4. リクエストヘッダーをチェックする例

リクエストヘッダーとは、ブラウザやアプリがサーバーに送る追加情報のことです。例えばスマホから来たのかPCから来たのかを判別する手がかりにもなります。

次の例では、User-Agentというヘッダーに特定の文字が含まれているかチェックしています。


public function handle($request, Closure $next)
{
    $ua = $request->header('User-Agent');

    if (strpos($ua, 'iPhone') === false) {
        return response('iPhone以外からはアクセスできません', 403);
    }

    return $next($request);
}

このように、Laravelではヘッダー情報を簡単に取得して条件分岐することができます。

5. リクエストパラメータをチェックする例

5. リクエストパラメータをチェックする例
5. リクエストパラメータをチェックする例

URLに含まれる情報やフォームの送信内容をチェックすることもできます。例えば、特定のキーが必ず存在するかどうかを確認したい場合です。


public function handle($request, Closure $next)
{
    if (!$request->has('token')) {
        return response('必要なパラメータがありません', 400);
    }

    return $next($request);
}

has()はパラメータがあるかどうかを確認する関数で、簡単にチェックできます。

6. IPアドレスをチェックする例

6. IPアドレスをチェックする例
6. IPアドレスをチェックする例

例えば管理画面を特定のネットワークからしか使わせたくない場合など、IPアドレスチェックが役立ちます。


public function handle($request, Closure $next)
{
    $ip = $request->ip();

    if ($ip !== '123.123.123.123') {
        return response('このIPアドレスからはアクセスできません', 403);
    }

    return $next($request);
}

リクエストのip()メソッドを使えば、アクセス元のアドレスを簡単に取得できます。

7. ミドルウェアをルートに適用する方法

7. ミドルウェアをルートに適用する方法
7. ミドルウェアをルートに適用する方法

作成したミドルウェアはルートに紐づけて使用します。


Route::get('/sample', function () {
    return 'チェック完了';
})->middleware('check.user.agent');

設定しておくと、ルートにアクセスしたとき必ず先にミドルウェアが実行されます。

カテゴリの一覧へ
新着記事
New1
Laravel
Laravelの認証状態をチェックする方法を完全解説!authとAuth::check()を初心者向けにやさしく説明
New2
CodeIgniter
CodeIgniterのコントローラクラスの作り方を完全ガイド!初心者でもわかる基礎から実践まで
New3
Symfony
Symfonyのフォームラベルを多言語対応!初心者でもわかる翻訳設定ガイド
New4
Laravel
Laravelでユーザー登録機能を作る方法!初心者向けにバリデーションとリダイレクトをやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.2
Java&Spring記事人気No2
Laravel
Laravelのビューとは?Bladeテンプレートの基本を解説
No.3
Java&Spring記事人気No3
Laravel
Laravelでセッションを扱う方法!保存方法と利用例を解説
No.4
Java&Spring記事人気No4
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方
No.5
Java&Spring記事人気No5
Laravel
Laravelでルーティングを設定する方法!web.phpと基本ルートの書き方を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
Laravel
LaravelでルートをBladeテンプレートに記述する方法(route関数)
No.7
Java&Spring記事人気No7
Laravel
Laravelのルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド
No.8
Java&Spring記事人気No8
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)