ホームページ  >  記事  >  PHPフレームワーク  >  laravelはミドルウェアを介したログインアクセスのルーティングをどのように検証しますか

laravelはミドルウェアを介したログインアクセスのルーティングをどのように検証しますか

藏色散人
藏色散人転載
2020-07-06 13:48:294105ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。