三、JWT类型token自动续期

上一篇:https://blog.csdn.net/zcccc_/article/details/135527168

每次访问接口经过过滤器的时候去判断是否过期、是否需要延期,我们拟定一个“允许过期时间”,跟据过期时间去判断。(如果有好办法欢迎留言,共同学习。)

1.在 JwtUtil 类加入新字段

//定义允许刷新JWT的有效时长(在这个时间范围内,用户的JWT过期了,不需要重新登录, 后台会给一个新的JWT给前端,这个叫Token的刷新机制后面会着重介绍它的意义。)
public static final Long ALLOW_EXPIRES_TIME =  30 * 60* 1000L; //  允许过期时间(毫秒) 30分钟

2.在 AuthorizeFilter 过滤器判断(拦截token验证的方法)

  //如果当前时间减去JWT过期的时间,大于允许过期时间,说明不允许重新申请了,就得重新登录了,此时返回null,否则就是可以重新申请,开始在后台重新生成新的JWT。(30分钟)
 if ((System.currentTimeMillis()-expiration.getTime())>JwtUtil.ALLOW_EXPIRES_TIME) {
       return response.writeWith(Mono.just(buffer));
 }else{
     //生成新token,存到header中返回给前端
     String jwt = JwtUtil.createJWT(id);
     response.getHeaders().add("token", jwt);
 }

执行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值