概要
ミドルウェアは、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');