我为路由分配中间件,但是路由只能通过完整路径才能调用,直接写名称不调用,这是什么问题呢?
我写了一个中间件authJWT.php
,这里为了方便演示,我直接抛出一个错误出来
public function handle($request, Closure $next)
{
throw new UnauthorizedHttpException('jwt-auth', '未登录');
}
我在kernel.php
->$routeMiddleware
中是这样写的
protected $routeMiddleware = [
....
'cors' => \App\Http\Middleware\CORS::class,
'jwt.auth' => \App\Http\Middleware\authJWT::class,
'jwt.refresh' => \Tymon\JWTAuth\Http\Middleware\RefreshToken::class,
];
路由api.php
中我是这样写得到错误提示是Token has expired
,并没有抛出我测试的异常
Route::group(['middleware' => ['api','cors']], function () {
Route::group(['middleware' => ['jwt.auth'], function () {
Route::get('get_user_details', '\App\Http\Controllers\User\APIController@get_user_details');
});
});
我把路由的名称改成作用域就抛出我测试的信息未登录
了
Route::group(['middleware' => [\App\Http\Middleware\authJWT::class]], function () {});
请问这是怎么回事呢?
推荐文章: