我正在使用JWT-Auth进行身份验证。我创建了一个中间件,用于检查令牌是否已过期,然后刷新令牌并更新标头。但是在我的控制器中,getToken()没有获得新令牌但返回过期令牌。我已经检查了控制器中标头的值,它有新标记。
这就是我在中间件中的做法:
$new_token = JWTAuth::refresh($token);
$request->headers->set('Authorization', 'Bearer '.$new_token);
$response = $next($request);
这是在我的控制器中:
$token = JWTAuth::getToken();
答案 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,然后才能正常工作。 几天前我也遇到了同样的问题