背景
现在大部分开发使用JWT 单token,作为登录鉴权的解决方案,这样可以不在服务端存储。
但是也存在一些问题:
- 注销与过期问题:JWT一旦发放,服务端无法强制使其失效,直到过期。这可能导致注销用户或权限变更后,原有token仍有效。
- 安全性风险:JWT的安全性依赖于签名密钥,密钥泄露会导致伪造token的风险。同时,存储在易受攻击位置(如localStorage)的JWT可能被盗用。
- 存储与性能问题:JWT包含用户信息,增加token大小,可能不适合所有场景,特别是在移动应用或带宽有限的环境中。同时,解析和验证JWT的过程可能增加服务端处理时间。
这个时候,双JWT无感刷新的方案,在这个痛点下应运而生,扛起了大任。
简介
双token无感刷新技术方案是通过两种不同有效期的token来保障用户信息的安全性和访问的持续性。具体来说,它包括一个长期有效的refresh token和一个短期有效的access token。
前端小程序在每次请求时携带access token,后端Spring Boot验证access token的有效性,如果access token过期但refresh token没有过期则使用refresh token获取新的access token,从而实现无感刷新。
实现流程
流程描述
时序图
代码示例
最后
JWT双token无感刷新方案通过引入refresh_token和短生命周期的access_token,有效解决了JWT单token在注销、过期、安全性和性能等方面存在的问题,提升了用户体验和系统安全性。开发中还没有用的以后可以用起来。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。