前后端分离——token超时刷新策略
前言
记录一下前后端分离下————token超时刷新策略!
需求场景
昨天发了一篇记录 前后端分离应用——用户信息传递 中介绍了token
认证机制,跟几位群友讨论了下,有些同学有这么一个疑惑:token
失效了,应该怎么做?强制定向到登录页?
其实理论上如果是活跃用户,token
失效后,假如用户正在操作表单,此时突然定向到登录页面,那用户体验太差了。
实现目标
- 延长
token
过期时间 - 活跃用户在
token
过期时,在用户无感知的情况下动态刷新token
,做到一直在线状态 - 不活跃用户在
token
过期时,直接定向到登录页
登录返回字段
如何签发token
,请看上一篇推文,这里不做过多介绍。先看看登录接口返回的数据如下:
1@Data 2public class LoginVo implements Serializable { 3 4 private static final long serialVersionUID = 6711396581310450023L; 5 6 //...省略部分业务字段 7 8 /** 9 * token令牌 过期时间默认15day10 */11 private String jwt;1213 /**14 * 刷新token 过期时间可以设置为jwt的两倍,甚至更长,用于动态刷新token15 */16 private String refreshJwt;1718 /**19 * token过期时间戳20 */21 private Long tokenPeriodTime;2223}
具体返回字段的意义请看注释,这里再简要说明:
- jwt:用户正常访问接口时提交的
token
,过期时间设置长一些,15day吧 - refreshJwt:刷新
token
过期时间可以设置为jwt
的两倍,甚至更长,用于动态刷新token
时候提交后台验证 - tokenPeriodTime:
token
过期时间戳,前端每次调用接口前需要主动判断是否已经过期,如果过期则提交refreshJwt
访问token
刷新的接口进行刷新
动态刷新token
前端检测到token
过期后,携带refreshJwt
访问后台刷新token
的接口,服务端在拦截器中依然对refreshJwt
进行解析鉴权
- 假如
refreshJwt
也过期了,提示登录过期,强制跳转登录页 - 假如
refreshJwt
还在有效期,则签发新的token
返回,前端使用最新的token
进行接口请求
总结
- 如果是活跃用户,那么允许他在
refreshJwt
过期时间与token
过期时间的差值这段时间内,不停的动态刷新token
,使其做到无感知的状态下一直保持登录状态 - 如果用户不活跃,在
refreshJwt
过期时间到了,依然没有使用系统,那么将判定为不活跃用户,此时应当重定向到登录页了
最后
篇幅较短,主要是延续上一篇 前后端分离应用——用户信息传递 遗留问题做一下总结。如果你有更好的做法,欢迎留言告知我,谢谢啦。后续会不定期更新原创文章,欢迎关注公众号 「张少林同学」!
转载于:https://www.cnblogs.com/zhangshaolin/p/10253613.html
前后端分离——token超时刷新策略相关推荐
- 基于shiro+jwt的真正rest url权限管理,前后端分离
代码地址如下: http://www.demodashi.com/demo/13277.html bootshiro & usthe bootshiro是基于springboot+shiro+ ...
- 若依前后端分离如何写移动端接口_前后端分离实践的架构设计
前后端分离的项目开发策略已经不是什么新鲜东西了,网上介绍这方面的文章非常多.我自己是在14年的时候接触到的,对这种开发策略一直爱不释手,不管新老项目都会首先用前后端分离的思维先去思考一番.从14年到现 ...
- 某小公司RESTful、共用接口、前后端分离、接口约定的实践
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:邵磊 juejin.im/post/59eafab36fb9 ...
- 接口入参形式_某小公司RESTful、共用接口、前后端分离、接口约定的实践
点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:邵磊 juejin.im/post/59eafab36fb9a045076eccc3 ...
- 在前后端分离的路上承受了多少痛?看看这篇是否能帮到你?
来源:http://t.cn/RW5O9mM 记得第一次听到前后端分离,是在NodeJs崛起之后,通过淘宝中途岛项目的博客开始有所了解的.那一阵,前后端分离的架构变的炙手可热,这里我也转过几篇关于前后 ...
- 某小公司 RESTful、共用接口、前后端分离、接口约定的实践
前言 随着互联网高速发展,公司对项目开发周期不断缩短,我们面对各种需求,使用原有对接方式,各端已经很难快速应对各种需求,更难以提高效率.于是,我们不得不重新制定对接规范.开发逻辑以便快速上线项目. 我 ...
- 基于spring security实现vue2前后端分离的双token刷新机制(完整代码详解,含金量拉满!)
目录 一.前言: 核心功能概要: 通过加密算法创建一个用户: 二.后端 代码详解: 1.代码整体结构: 2.所需依赖: 3.UserDetailServiceImpl拦截用户登陆: 4.所需工具类 4 ...
- springboot jwt token前后端分离_为什么要 前后端分离 ?
作 者:互扯程序 来 源:互扯程序 广而告之:由于此订阅号换了个皮肤,系统自动取消了读者的公众号置顶.导致用户接受文章不及时.您可以打开订阅号,选择置顶(星标)公众号,重磅干货,第一时间送达! 本文知 ...
- Django CSRF(什么是CSRF?)\Django前后端分离csrf token获取方式
文章目录 Django CSRF 什么是CSRF? Django CSRF Django CSRF 中间件 Django,Ajax提交csrf_token处理 Django 设置 cookie 中的 ...
最新文章
- SQL设置语言,返回中文”星期几”格式
- hdu1043 经典的八数码问题 逆向bfs打表 + 逆序数
- thrift多平台安装
- Octave matlab中运行.m文件方式对比
- 初始化toolstrip
- go 默认http版本_【每日一库】超赞的 Go 语言 INI 文件操作
- 信息安全工程师笔记-数字证书
- 盘点云计算领域不可不读的9本书
- python中一切都是对象_python中一切皆对象
- 【渝粤教育】国家开放大学2018年春季 0557-21T广告设计 参考试题
- 以下哪些python数字是合法的_3 4j 是合法Python数字类型。
- 电脑服务器删除的文件如何复原,电脑怎么恢复文件_彻底删除的文件如何恢复...
- 一文带你了解redux的工作流程——action/reducer/store
- 商汤科技——机器视觉面试
- PHP审计-RIPS
- 散射回波仿真Matlab,基于散射中心模型的ISAR回波仿真方法
- [模板]线性递推+BM
- 10大最受欢迎的国外业务流程管理(BPM)软件
- macbookair有没有touchbar_苹果电脑购买建议:2018新款MacBook Pro买不买带Touch Bar的?...
- linux 去掉终端控制符,Linux终端显示控制字符
热门文章
- PWN-PRACTICE-BUUCTF-5
- python爬取文件归类_python爬取各类文档方法归类汇总
- 【牛客 - 370 I 】Rinne Loves Xor(按位前缀和,异或)
- RabbitMQ初识
- 中原标准时间对时_GPS对时系统(时间同步系统)应用电子政务
- 培智计算机教学论文,【培智数学论文】_培智数学教学论文
- json 潜逃 结构体_JSON还原为结构体 - osc_t5zhwnvx的个人空间 - OSCHINA - 中文开源技术交流社区...
- jdk11 后用的指定编码格式,读取文件
- 怎样测量地图上曲线的长度_测量长度的特殊方法
- 28和lba48命令格式区别_编译Sass(命令行)