Laravel中间件使用

以前也看过laravel的中间件,可能由于没有经常使用就忘了(好吧我承认是技术太菜了),在学习JWT的时候又重新学了一遍,这次要把它记录下来,并且在项目中去使用
这里使用中间件去验证token

创建中间件文件

在项目文件夹中创建JwtMiddleware.php文件,路径为 app\Http\Middleware\JwtMiddleware.php

all();
        $token = $result['token'];
        if( $token ){
            // jwt验证类实例化
            $JwtAuth = JwtAuth::getinstance();
            $JwtAuth->setToken($token);
            // 验证token是否过期 被串改
            if(  $JwtAuth->verify() ){
                //验证通过执行下一步
                return $next($request);
            }else{

                // token 验证失败
                return  $this->jsonErrorData(ApiErrDesc::ERROR_LOGIN[0], ApiErrDesc::ERROR_LOGIN[1]);
            }
        }else{
            // token不存在
            return  $this->jsonErrorData(ApiErrDesc::ERROR_PARAMS[0], ApiErrDesc::ERROR_PARAMS[1]);
        }
    }
    
}

注册中间件

在路径\app\Http\Kernel.php 文件夹中 找到$routeMiddleware ,在数组末尾中加入jwt_auth元素

'jwt_auth' => \App\Http\Middleware\JwtMiddleware::class,

使用中间件

在路由文件api.php中使用,路径为\routes\api.php

// 我这里是一个小程序的前台Banner图接口为例
// 在xiaocx 板块路由组中加入'middleware' => ['jwt_auth'] 就可以了
Route::group( [ 'prefix' => 'xiaocx','middleware' => ['jwt_auth'] ] , function () {
    // 获取首页轮播
    Route::match(['get','post'], 'bannerImgs', 'xiaocx\BannerController@index');
});

这样就完成了,只要在这个路由组里面的的接口都会被中间件jwt_auth验证,这样就实现了接口鉴权啦,下一篇文章,完成jwt 相关的东西

你可能感兴趣的:(Laravel中间件使用)