我正在使用jwt auth(https://github.com/tymondesigns/jwt-auth)设置laravel应用程序(v5.1)。得到了这个项目的样板:https://github.com/francescomalatesta/laravel-api-boilerplate-jwt。这样我希望将来能够对不同的应用进行身份验证。
我的问题是我试图在同一个项目中创建一些受保护的页面,但我目前无法阻止没有cookie的用户(未经过身份验证)。为了保护"访问我在$ routeMiddleware中有以下值(在Kernel.php中):
'csrf' => \csd\Http\Middleware\VerifyCsrfToken::class,
'auth' => \csd\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \csd\Http\Middleware\RedirectIfAuthenticated::class,
'jwt.refresh' => \Tymon\JWTAuth\Middleware\RefreshToken::class
我还尝试添加' jwt.auth' => \ Tymon \ JWTAuth \ Middleware \ GetUserFromToken :: class 到这个数组,但没有任何改变。
如何在使用此jwt-auth时阻止用户访问我的页面?
提前致谢。
答案 0 :(得分:3)
要在所有路由上应用它,您必须将其放在Http内核($middleware
)上的$routeMiddleware
而不是app/Http/Kernel.php
属性中。
或者,当它与$routeMiddleware
一起使用时,您必须在路径定义中明确引用它;像这样的东西:
Route::group(['middleware'=>'jwt.auth'], function($router){
$router->resource('protected-resource', 'SecretSauceController');
});