【问题标题】:JWT::getToken() doesn't get the proper tokenJWT::getToken() 没有得到正确的令牌
【发布时间】:2017-11-29 16:00:48
【问题描述】:

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

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

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

这是在我的控制器中:

$token = JWTAuth::getToken();

【问题讨论】:

    标签: laravel laravel-5 jwt laravel-middleware


    【解决方案1】:

    在 composer.json 文件中将 JWT 包 5.12 的版本更改为 5.11,然后它就可以正常工作了。 几天前我也陷入了同样的问题

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

    【讨论】:

    • 不是版本问题
    【解决方案2】:

    查看他们的代码后。我找到了一个 setToken() 函数,它解决了我的问题。我像这样修改了我的代码:

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

    【讨论】:

      猜你喜欢
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 1970-01-01
      • 2021-06-27
      • 2016-02-17
      • 2019-09-09
      • 2016-12-25
      相关资源
      最近更新 更多