关于双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是短期凭证,即便被窃取了,也只是短期有效,影响不会太大
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」