使用laravel 5.1和jwt

时间:2015-12-15 10:46:08

标签: php laravel authentication laravel-5.1 jwt

我正在使用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时阻止用户访问我的页面?

提前致谢。

1 个答案:

答案 0 :(得分:3)

要在所有路由上应用它,您必须将其放在Http内核($middleware)上的$routeMiddleware而不是app/Http/Kernel.php属性中。

或者,当它与$routeMiddleware一起使用时,您必须在路径定义中明确引用它;像这样的东西:

Route::group(['middleware'=>'jwt.auth'], function($router){
    $router->resource('protected-resource', 'SecretSauceController');
});