JWT :: getToken()没有获得正确的令牌

时间:2017-06-26 18:12:50

标签: laravel laravel-5 jwt laravel-middleware

我正在使用JWT-Auth进行身份验证。我创建了一个中间件,用于检查令牌是否已过期,然后刷新令牌并更新标头。但是在我的控制器中,getToken()没有获得新令牌但返回过期令牌。我已经检查了控制器中标头的值,它有新标记。

这就是我在中间件中的做法:

$new_token = JWTAuth::refresh($token);
$request->headers->set('Authorization', 'Bearer '.$new_token);
$response = $next($request);

这是在我的控制器中:

$token = JWTAuth::getToken();

2 个答案:

答案 0 :(得分:1)

看了他们的代码。我找到了setToken()函数来解决我的问题。我修改了我的代码:

$new_token = JWTAuth::refresh($token);
JWTAuth::setToken($new_token);
$response = $next($request);
$response->header('Authorization','Bearer '.$new_token);
return $response;

答案 1 :(得分:0)

在composer.json文件中将JWT软件包5.12的版本更改为5.11,然后才能正常工作。 几天前我也遇到了同样的问题

https://github.com/tymondesigns/jwt-auth/issues/1198