用的jwt 我在中间件中刷新的token 刷新后旧的token会被jwt加入黑名单 这个时候控制器中再用JWTAuth::getToken()获取token的话会提示The token has been blacklisted 这种情况怎么办?我怎样在控制器的index方法中获取这个新的token呢?Route::group(['namespace' => 'Api'], function(){ Route::middleware(['refresh'])->group(function () {
Route::post('index', 'AuthController@index');
});
});中间件$old_token = JWTAuth::getToken();
$token = JWTAuth::refresh($old_token);AuthControllerpublic function index() {
$token = JWTAuth::getToken();
$user = JWTAuth::parseToken()->authenticate();
dd($user);
}
2 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
$old_token = JWTAuth::getToken(); $token = JWTAuth::refresh($old_token); JWTAuth::setToken($token)
慕标5832272
TA贡献1966条经验 获得超4个赞
不过还是建议你配置jwt为旧的Token设置一个可用时间(可能是30秒 或 1分钟)
因为有时会出现并发请求的情况,用户同时发出2个请求,但是它的token已经过期,这时第一个请求被接受,token刷新,但是当时同时发出的第2个请求就会出现验证失败的情况
- 2 回答
- 0 关注
- 1984 浏览
添加回答
举报
0/150
提交
取消