ホームページ >PHPフレームワーク >Laravel >Laravelワールドミドルウェアのガーディアン

Laravelワールドミドルウェアのガーディアン

灭绝师太
灭绝师太オリジナル
2021-12-06 17:27:222050ブラウズ

Laravelワールドミドルウェアのガーディアン

ミドルウェアはリクエストをフィルタリングできます。ここでは、ミドルウェアを使用して、ユーザーがログインしているかどうかを確認できます。ユーザーがログインしている場合は、元の操作を続行できます。ログインしていない場合はリダイレクトされます。ログイン ページに移動し、最初にユーザーにログインさせます。

1. ミドルウェアを定義します

##phpartian make:middleware コマンドを使用して、ミドルウェアの作成、ファイルパス: app\Http\Middleware\CheckToken.php

php artisan make:middleware CheckToken
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;

class CheckToken
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle(Request $request, Closure $next)
    {
       //在这里做一个判断,如果token不是 &#39;my-secret-token&#39;,则重定向
       if ($request->input(&#39;token&#39;) !== &#39;my-secret-token&#39;) {
            return redirect(&#39;home&#39;);
        }
        return $next($request);
    }
}

2. ミドルウェアの分類

  • ##プレミドルウェア

  • <?php
    namespace App\Http\Middleware;
    use Closure;
    class BeforeMiddleware
    {
        public function handle($request, Closure $next)
        {
             ...
            // 应用请求之前执行一些任务
            return $next($request);
        }
    }
  • ##ポストミドルウェア


    <?php
    namespace App\Http\Middleware;
    use Closure;
    class AfterMiddleware
    {
        public function handle($request, Closure $next)
        {
            $response = $next($request);
            // 应用请求之后执行一些任务
            return $response;
        }
    }
  • ## 3. ミドルウェアの使用

##ミドルウェアをグローバルに使用する
  • #

    //在app\Http\Kernel.php中的$middleware内添加
     protected $middleware = [
            // \App\Http\Middleware\TrustHosts::class,
            ....
            ....
            \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
            //这是之前定义的
            \App\Http\Middleware\CheckToken::class,
        ];

  • ミドルウェア グループの使用
  • ##
    //在app\Http\Kernel.php中的$middlewareGroups内添加
      protected $middlewareGroups = [
          &#39;web&#39; => [
               ....
            ],
    
            &#39;api&#39; => [
               ....
            ],
            &#39;diy&#39; =>[
              //可以在web组和api组中添加,也可以自己diy一个
            ]
        ];
    //路由中使用,RouteServiceProvider 默认将 web 和 api 中间件组自动应用到 routes/web.php 和 routes/api.php
    Route::get(&#39;/u&#39;, function () {
    
    })->middleware(&#39;diy&#39;);

    #ミドルウェアを個別に使用する

        protected $routeMiddleware = [
             ...,
             &#39;myself&#39;=> \App\Http\Middleware\CheckToken::class,
            ];
    Route::get(&#39;/user&#39;, function () {
        //
    })->middleware(&#39;myself&#39;);
  • 関連ビデオチュートリアルの推奨事項:

    Laravel ビデオチュートリアル

以上がLaravelワールドミドルウェアのガーディアンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。