概要
ミドルウェアは、HTTPリクエストを検査およびフィルタリングする。
例えばユーザ認証を確認して、認証されていない場合であれば
アプリケーションのログイン画面にリダイレクトする。
認証されていればリクエストをアプリケーションへ進めることを許可する。
定義
ミドルウェアの作成はartisanコマンドを使用する
php artisan make:middleware Authenticate
すると、Authenticate
クラスを含むファイルがapp/Http/Middleware
に配置される。
記述例
class Authenticate
{
// リクエスト処理
public function handle($request, Closure $next)
{
// トークンが一致しなければリダイレクト
if ($request->input('token') !== 'my-secret-token') {
return redirect('login');
}
// アプリケーションに進む
// (ミドルウェアをパスする)
return $next($request);
}
}
ミドルウェアの登録
グローバル
アプリケーション全てのHTTPリクエストに対するミドルウェアは
app/Http/Kernel.php
内の$middleware
配列内に記述する。
class Kernel extends HttpKernel
{
protected $middleware = [
\App\Http\Middleware\HogeHoge::class
];
}
ルートに対する指定
特定のルートに配置するミドルウェアは
app/Http/Kernel.php
内の$reouteMiddleware
配列内に記述する。
class Kernel extends HttpKernel
{
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class
];
}
ミドルウェアをKernel.php
で定義すると、middleware
メソッドを用いて
ルートに割り当てることができるようになる。
Route::get('/profile', function() {
//
})->middleware('auth');