溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

laravel的中間件middleware怎么用

發布時間:2021-12-06 17:36:55 來源:億速云 閱讀:228 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關laravel的中間件middleware怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

中間件可以對請求進行過濾,這里可以利用中間件來驗證用戶是否登錄,如果用戶登錄則可以繼續執行原先想執行的操作,如果沒登錄則重定向到登錄頁面,讓用戶先登錄。

   一、定義中間件

通過 php artsian 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不是 'my-secret-token',則重定向
       if ($request->input('token') !== 'my-secret-token') {
            return redirect('home');
        }
        return $next($request);
    }
}

   二、中間件的分類

  • 前置中間件

<?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;
    }
}

   三、中間件的使用

  • 全局使用中間件

//在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 = [
      'web' => [
           ....
        ],

        'api' => [
           ....
        ],
        'diy' =>[
          //可以在web組和api組中添加,也可以自己diy一個
        ]
    ];
//路由中使用,RouteServiceProvider 默認將 web 和 api 中間件組自動應用到 routes/web.php 和 routes/api.php
Route::get('/u', function () {

})->middleware('diy');
  • 單獨使用中間件

    protected $routeMiddleware = [
         ...,
         'myself'=> \App\Http\Middleware\CheckToken::class,
        ];
Route::get('/user', function () {
    //
})->middleware('myself');

關于“laravel的中間件middleware怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女