ホームページ > 記事 > PHPフレームワーク > laravelはミドルウェアを介したログインアクセスのルーティングをどのように検証しますか
Laravel の次のチュートリアルコラムでは、laravel でログインし、ミドルウェア検証ルーティングを介してアクセスする方法を紹介します。
ミドルウェアの機能ミドルウェアは、アプリケーションに入る HTTP リクエストをフィルタリングする便利なメカニズムを提供します。
たとえば、Laravel にはユーザーを認証するミドルウェアが含まれています。ユーザーが認証に失敗した場合、ミドルウェアはユーザーをログイン ページにリダイレクトします。一方、ユーザーが認証された場合、ミドルウェアはさらにリクエストをアプリケーションに転送します。もちろん、ID 検証に加えて、さまざまなタスクを実行する他のミドルウェアを作成することもできます。たとえば、CORS ミドルウェアは、アプリケーションから返されるすべての応答に適切な応答ヘッダーを追加する役割を担うことができます。ロギングミドルウェアは、アプリケーションに届くすべてのリクエストを記録できます。
Laravel には、認証、CSRF 保護などのいくつかのミドルウェアが付属しています。これらのミドルウェアはすべて app/Http/Middleware ディレクトリにあります。
//使用 make:middleware 命令来创建新的中间件。php artisan make:middleware Auth
グローバル ミドルウェア
ミドルウェアをapplication 各 HTTP リクエストの処理中に実行されます。 app/Http/Kernel.php の $middleware 属性にミドルウェアをリストするだけです。ミドルウェアをルートに割り当てる
指定したルートにミドルウェアを割り当てる場合、最初に app/Http/Kernel.php ファイルでミドルウェアにキーを割り当てる必要があります。デフォルトでは、Laravel の組み込みミドルウェアは、このクラスの $routeMiddleware 属性に含まれています。カスタム ミドルウェアを追加するには、リストに追加してカスタム キーを割り当てるだけです。例:
// 在 App\Http\Kernel 类中...protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,];
public function handle($request, Closure $next)
{
//通过判断session是否有用户名,判断是否登陆
if(!session('user')){
return redirect('/');
}
return $next($request);
}
//namespace是命名空间,也就是你的controller文件在哪个文件夹里//middleware对应的就是你想调用的中间件,这里调用的是登录验证的中间件//auth就是你在App\Http\Kernel类中注册的名字Route::group(['namespace' => 'Admin', 'middleware' => ['auth']], function () {
//后台首页
Route::get('admin','admincontroller@index')->name('admin');
//清除缓存路由
Route::get('admin/clear','admincontroller@clear')->name('clear');
//栏目资源路由
Route::resource('admin/classify','classifycontroller');
//公告资源路由
Route::resource('admin/notice','classifynoticecontroller');});
このようにして、簡単に次のことができます。ユーザーがバックグラウンドでログインしているかどうかを判断し、ログインしていない場合は自動的にログイン ページにジャンプします。
以上がlaravelはミドルウェアを介したログインアクセスのルーティングをどのように検証しますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。