用的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);
AuthController
public function index() {
$token = JWTAuth::getToken();
$user = JWTAuth::parseToken()->authenticate();
dd($user);
}
不过还是建议你配置jwt为旧的Token设置一个可用时间(可能是30秒 或 1分钟)
因为有时会出现并发请求的情况,用户同时发出2个请求,但是它的token已经过期,这时第一个请求被接受,token刷新,但是当时同时发出的第2个请求就会出现验证失败的情况