jwt的token自动续约_JWT token过期自动续期解决方案

access_token: 用于一般的资源请求的token

refresh_token: access_token过期后用于刷续期的token,注意设置refresh_token的过期时间需比access_token的过期时间长。

问题场景与解决办法

问题1:

实现自动登录 JWT Token设置有效期,一旦失效用户就要重新登录,这样的体验非常差,需要做到用户在无感知的情况下,解决如何刷新Token的问题

解决方案:

用户登录时调用后端认证接口,后端验证用户成功之后生成两个token,access_token和refresh_token ,后端将用户信息和这两个token打包成JWT后并返回给前端。前端在获取到登录成功返回的两个token之后,将之存放到localStorage本地存储中。

问题2:

JWT用户如何无感知刷新token?

解决方案:

JWT token过期自动续期解决方案(去Redis)

1)前端调用认证服务器登录, 正确后从认证服务器获取token(访问令牌access_token,刷新令牌refresh_token,过期时间(秒)exp_in,其中access_token为5分钟,refresh_token为30分钟,过期时间为300秒;

2)前端将其保存

3)每次Http请求带着access_token来访问资源服务端,资源服务器将按如下步骤令牌。

4)先校验JWT是否合法(只是过期,不影响校验通过) 或 用户ID是否存在, 不满足任一条件,返回401,让用户重新登录。

5)验证令牌是否过期,没过期就结束令牌校验,继续本次请求的业务逻辑(此时,JWT合法性校验通过,)。

6)令牌已过期,

如果令牌过期时间超过了过期时间的两倍,返回401,让用户重新登录。

如果令牌过期时间小于过期时间的两倍,并在http响应头添加特列标识 token_expired=access_token ,服务器同时返回后继的业务结果,前端接收到后,应该在后续的再到认证服务器获取新的token)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值