ミドルウェアとは
ミドルウェアとは、HTTPリクエストとレスポンスの処理をフィルタリングまたは、変更する処理です。つまり、リクエストやレスポンスが送信される前に何らかの処理を実行できる機能です。ミドルウェアを使用することで認証されたユーザのみにアクセス可能なページを作成したり、特定の権限を持っている確認したり、リクエストデータ、レスポンスデータの加工などができます。
Laravelのミドルウェア
Laravelのミドルウェアにauthミドルウェアがあります。このミドルウェアはユーザーがログインしている場合にアクセスを許可するミドルウェアとなります。このミドルウェアを使用してみたいと思います。このミドルウェアを使用する前にユーザーを追加する必要があります。以前、マイグレーションの変更方法で、userテーブルにカラムを追加した場合はその追加を取り消す必要があります。以下のコマンドでマイグレーションをひとつ前に戻します。
php artisan migrate:rollback
上記のコマンドを実行し、add_is_admin_to_users_tableマイグレーションファイルをロールバックします。
次に、authミドルウェアを適用するビューのためのコントローラーを作成します。今回はAuthControllerを追加します。以下のように、show-authビューを追加するように設定します。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class AuthController extends Controller
{
public function showAuth() {
return view("show-auth");
}
}
次に、ビューを作成します。ビューはアクセスが成功していることが分かればよいので好きに記述してください。
次に、authミドルウェアを設定します。設定するファイルはweb.phpです。以下のようにルーティングをします。
Route::middleware("auth")->get("/auth/auth-page",[AuthController::class, "showAuth"]);
上記を設定後、http://localhost/auth/auth-pageにアクセスします。すると、ログインページにリダイレクトされるはずです。これがauthミドルウェアの効果となります。次に、http://localhost/registerにアクセスし、ユーザー登録を行います。登録内容はお好みで構いません。新規登録を行うと、Dashboad画面に遷移します。ログインした状態で、http://localhost/auth/auth-pageに再びアクセスすると、アクセスできることがわかります。
以上で、ミドルウェアの基本的な使い方がわかりました。次回は、自作のミドルウェアを作成したいと思います。