middleware 中介軟體詳解

自由飛發表於2018-05-10

如果感覺這篇文章有用請點個贊,讓我知道自己的努力不白費!!!

中介軟體是請求必經之處,所以此處能對請求的資料做一系列處理,相當於過濾器。例如跨域請求,驗證會員是否登入跳轉至登入頁,前後端分離資料型別不一致,防禦xss指令碼攻擊等。這些作者都用過,所以感覺很好用。
1.生成中介軟體: php artisan make:middleware UserAuth(中介軟體名)
2.在app\http\kernel.php 中:
$middleware陣列內為全域性中介軟體(每次請求都經過),$routeMiddleware可以指定自定義中介軟體,在生成的中介軟體handle方法內寫程式碼邏輯

    Route::middleware(['CheckUserLogin'])->grtoup(function(){
                    // 路由組
            });

一般情況下中介軟體含有多個路由組,如果單一一個還不如在方法內處理。
$middlewareGroups 為中介軟體組,即你可以起一箇中介軟體名指定路由內部有多箇中介軟體進行過濾。
看RouteServiceProvider.php中

 protected function mapApiRoutes()
{
    Route::prefix('api')
        ->middleware('api')   //系統預設中介軟體
        ->namespace($this->namespace)
        ->group(base_path('routes/api.php'));  //系統指定路由
}

系統已經為指定路由指定好中介軟體,這就是文件中為幾個route介面預設好中介軟體。

3.中介軟體引數
有時候你用同一個中介軟體執行相同的邏輯但是不同的判斷,例如你有兩個平臺相同的使用者判斷使用者是否登入,如果沒登入就跳轉不同的登入介面,這時候只需要在中介軟體傳一個引數就能進行判斷。

Route::middleware(['CheckUser:web'])->group(function(){ //路由組 });

至此路由已經介紹完了,如果大家有疑問或者更好的方法使用,請告知我及時補充。
每週不定時更新
如果有用請點個贊吧,照亮我前進孤獨的路。

自由飛

相關文章