关于双JWT的流程记录

鉴权问题一直是个经典问题,从最初的cookie-session方案,到token方案,再到使用签名保证准确性的JWT方案
一直到OAuth2.0,这里我在项目中对于原来的传统授权方式使用双JWT进行改造

为什么要使用双token

由于token的过期时间在token生成后就难以更改,所有token的过期时长不宜设置过长:

  • 当用户信息发生更改时,token中的信息无法及时更改
  • 增加token中信息泄露的风险
  • token过期时间短的话,用户需要不停登陆,体验较差

即可以实现被窃取到accessToken也无所谓,只是短时间内有效,而在accessToken过期时,前端调用续期接口再次获取新的双token,实现安全,静默续期等功能,我这里画了一张流程图供参考
具体代码不展示

客户端浏览器首次登陆,获取到accessToken和refreshToken
accessToken是短期凭证,每次请求放在请求头携带过去,用于鉴权
refreshToken是长期凭证,存放在localStorage中,只有当请求携带accessToken,响应了过期时
refreshToken才出马,调用续期接口,获取新的双token,用于下一周期的请求

由于refreshToken存放在localStorage,无需担心CRSF攻击
accessToken是短期凭证,即便被窃取了,也只是短期有效,影响不会太大

posted @   风乐  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示