为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕侠2389804 2019-03-01 21:04:18
用的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)


查看完整回答
反对 回复 2019-03-01
?
慕标5832272

TA贡献1966条经验 获得超4个赞

不过还是建议你配置jwt为旧的Token设置一个可用时间(可能是30秒 或 1分钟)
因为有时会出现并发请求的情况,用户同时发出2个请求,但是它的token已经过期,这时第一个请求被接受,token刷新,但是当时同时发出的第2个请求就会出现验证失败的情况

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 1955 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信