laravel刷新token后怎样在控制器中获得新的token?

用的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);
}


慕侠2389804
浏览 1956回答 2
2回答

慕运维8079593

$old_token = JWTAuth::getToken(); $token = JWTAuth::refresh($old_token); JWTAuth::setToken($token)

慕标5832272

不过还是建议你配置jwt为旧的Token设置一个可用时间(可能是30秒 或 1分钟)因为有时会出现并发请求的情况,用户同时发出2个请求,但是它的token已经过期,这时第一个请求被接受,token刷新,但是当时同时发出的第2个请求就会出现验证失败的情况
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5
CSS3