首頁 >後端開發 >php教程 >laravel中介軟體的使用

laravel中介軟體的使用

不言
不言原創
2018-07-05 15:13:371915瀏覽

這篇文章主要介紹了關於laravel中間件的使用,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

laravel中間件的使用:

建立中間件指令
php artisan make:middleware CheckLogin
執行完以上指令會在app/Http/Middleware目錄下建立一個新的中間件類別CheckLogin.php。
建立完以後還需要註冊中間件在app/Http/Kernel.php中:
 protected $routeMiddleware = [
        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        //这就是新注册的中间件
        'checklogin' => \App\Http\Middleware\CheckLogin::class,    ];
可以寫在剛建立的中間件裡驗證如下:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Session;
class CheckLogin{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $userid = Session::get(&#39;_userid&#39;);        
        $login_sts = Session::get(&#39;_login_sts&#39;);        
        if (empty($userid) || empty($login_sts)){            
        return response()->view(&#39;admin/login&#39;);
        }        
        return $next($request);
    }
}
接著就是怎麼使用中間件功能了
Route::group([&#39;namespace&#39;=>&#39;Admin&#39;,&#39;middleware&#39;=>&#39;checklogin&#39;],function (){    
Route::get(&#39;admins&#39;,&#39;IndexController@index&#39;);    
Route::get(&#39;logout&#39;,&#39;IndexController@logout&#39;);});

這裡直接使用的是路由群組,只要把路由放在群組之中都會經過這個驗證,['namespace'=>'Admin']是命名空間,['middleware'=>'checklogin']這就是中間件驗證,之前註冊時註冊名為checklogin,所以middleware後直接寫checklogin就可以了。

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

Laravel 修改預設日誌檔案名稱和位置

用laravel dingo api外掛程式庫建立api的方法

以上是laravel中介軟體的使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn