ミドルウェアとは、条件を満たしていない訪問者がページにアクセスできなくしたりするシステム。
ただ、初めてミドルウェアを耳にする時には、これだけだとイマイチよく分からないですよね。
40代でプログラミングを始めた わたしも最初は、なんだかよくわかりませんでした。
そこで、「ミドルウェアについてググってみたけど、いまいち分からなかった」という方のために、マンガでミドルウェアを解説してみました。読んでみてください^^
Laravelのミドルウェアをマンガで解説
ミドルウェアとは
以上ですが、なんとなく、ミドルウェアのイメージをつかんでいただけたら嬉しいです^^
もう少しちゃんと解説しますと、ミドルウェアとは訪問者のリクエストに対して、ルーターとコントローラーの間にたって処理を行うメカニズムです。
通常であれば、ルーターが「このページにきたら、このコントローラーに処理をお願いしよう」と、処理を振り分けます。
ですがもしコントローラーが処理を実行する前に認証などの処理を行いたい場合は、ミドルウェアを使います。
こうすることで、特定のユーザーのみがページを見れるようにする、といったことが可能になるのです。
Laravelの認証用ミドルウェアの設定方法
Laravelではミドルウェアを使って、【認証ユーザーかどうか】という制限を、手軽に設定できます。
これによって、ユーザー登録&ログインしているユーザーのみがアクセス可能なように設定できます。
実際にどのように認証のミドルウェアをかけるのか、設定方法を解説します。
①Laravelプロジェクトの作成
まずは、Laravelのプロジェクトを新規作成します。
新規プロジェクト作成コマンドはこちら。
1 |
composer create-project --prefer-dist laravel/laravel bbs |
*【bbs】の部分は、お好きなプロジェクト名に変えてください。
次に、Breezeパッケージを使って認証機能を入れていきます。
プロジェクトをインストールしたディレクトリで、次のコマンドを入力します。
1 |
composer require laravel/breeze --dev |
続いて、下記を実行します。
1 |
php artisan breeze:install |
その後、npm installとnpm run devコマンドを実行します。
1 |
npm install |
1 |
npm run dev |
さらにマイグレートを実行して、データベースにusersテーブルを作成します。
1 |
php artisan migrate |
これで認証機能搭載完了です。
上記はざっくりとしたインストール&認証機能搭載の解説でした。
ちょっと分かりにくいですよね。
詳しく知りたい場合は、下記の記事を参考にしてください。
②Webページを見てみる
それでは実際に、作成したプロジェクトを見てみましょう。
下記コマンドでサーバーを立ち上げ、Laravelのトップページを表示させます。
1 |
php artisan serve |
【Laravelトップページ】
右上にLoginとRegisterメニューが表示されています。
またプロジェクト内のroutes/web.phpファイルを開いてみてください。下記のようなルート設定が既に入っているはずです。
【web.php】
1 2 3 |
Route::get('/dashboard', function () { return view('dashboard'); })->middleware(['auth'])->name('dashboard'); |
このルート設定は、ユーザー登録後にログインした時に表示されるページに関するものです。
ルート設定の中に middleware(['auth']) というのが入っています。これこそ、「認証済みユーザーしかアクセスできない」というミドルウェアになります。
本当にちゃんとミドルウェアが効いているのか、テストしてみましょう。
URLに【/dashboard】をつけて、上記のルート設定にアクセスしようとしてみてください。すると、リダイレクトされるはずです。
ミドルウェアがちゃんと効いているってことですね。
ユーザー登録・ログイン後は、ちゃんと /dashboardにアクセスできます。良かったら、テストしてみてください。
さいごに
今回はミドルウェアについて、ご紹介してきました。
今回のまとめ
- ミドルウェアによって、認証などの処理が行える
- Laravelでは、認証用のミドルウェアを手軽に追加できる
authミドルウェアを使えば、ルート設定に手軽に「認証済みユーザーしかアクセスできない」という制限をかけることができます。またミドルウェアは、自分で作成することもできます。
なお、
「ミドルウェアについて理解はできたけど、具体的にどうするか、イマイチわからない」
「プロジェクトを実際に作りながら、Laravelを実践的に学びたいな」
という方のために、【Laravelの教科書】という学習サイトをご用意しています。Laravelをいちから学びながら、会員制のフォーラムサイトを作成していく内容です。
ご興味があれば、下記ボタンをクリックしてご案内ページを見てみてくださいね。
基礎編部分は無料です。