【问题标题】:Authenticate with a cookie using laravel 5.1 and jwt使用 laravel 5.1 和 jwt 使用 cookie 进行身份验证
【发布时间】:2016-03-21 02:52:41
【问题描述】:

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

提前致谢。

【问题讨论】:

    标签: php laravel authentication laravel-5.1 jwt


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-12-19
      • 1970-01-01
      • 2016-05-18
      • 2018-11-16
      • 2016-04-07
      • 2016-04-20
      • 2019-08-18
      • 2022-01-23
      • 1970-01-01
      相关资源
      最近更新 更多