jwt token 过期刷新_看看Laravel (Lumen) 是如何解决JWT-Auth刷新token问题的

token如何刷新

在PHP框架Laravel中安装了扩展JWT-Auth,你可能会遇到一个问题,即token该如何刷新。

可能很多人都不太理解作者的设计思想,包括我在内,但是看了很多issue之后,你就会慢慢的明白jwt-refresh是如何使用的咯,下面来给大家讲解一下。

首先create一个路由,比如“auth/refresh-token” ,你可以指向某个方法,也可以直接写个匿名函数。这里个人是简单的写在匿名函数里。

代码如下:

$app->post('auth/refresh_token', ['middleware' => 'jwt.refresh', function() {try {$old_token = JWTAuth::getToken();$token = JWTAuth::refresh($old_token);JWTAuth::invalidate($old_token);} catch (TokenExpiredException $e) {throw new AuthException(Constants::get('error_code.refresh_token_expired'),trans('errors.refresh_token_expired'), $e);  } catch (JWTException $e) {throw new AuthException(Constants::get('error_code.token_invalid'),trans('errors.token_invalid'), $e);}return response()->json(compact('token'));}]);

当token失效之后,访问这个地址的时候就会把旧token带上,会得到一个新的token。它会将新token保存,访问api时使用新token。就这样如此反复。

虽然token的有效时间默认是一个小时,但是刷新token时间长达两个星期,这种效果总比重复登录要好得多。

05e6645ab847a85271269a36551659c5.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值