前言

记录一下前后端分离下————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超时刷新策略相关推荐

  1. 基于shiro+jwt的真正rest url权限管理,前后端分离

    代码地址如下: http://www.demodashi.com/demo/13277.html bootshiro & usthe bootshiro是基于springboot+shiro+ ...

  2. 若依前后端分离如何写移动端接口_前后端分离实践的架构设计

    前后端分离的项目开发策略已经不是什么新鲜东西了,网上介绍这方面的文章非常多.我自己是在14年的时候接触到的,对这种开发策略一直爱不释手,不管新老项目都会首先用前后端分离的思维先去思考一番.从14年到现 ...

  3. 某小公司RESTful、共用接口、前后端分离、接口约定的实践

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:邵磊 juejin.im/post/59eafab36fb9 ...

  4. 接口入参形式_某小公司RESTful、共用接口、前后端分离、接口约定的实践

    点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:邵磊 juejin.im/post/59eafab36fb9a045076eccc3 ...

  5. 在前后端分离的路上承受了多少痛?看看这篇是否能帮到你?

    来源:http://t.cn/RW5O9mM 记得第一次听到前后端分离,是在NodeJs崛起之后,通过淘宝中途岛项目的博客开始有所了解的.那一阵,前后端分离的架构变的炙手可热,这里我也转过几篇关于前后 ...

  6. 某小公司 RESTful、共用接口、前后端分离、接口约定的实践

    前言 随着互联网高速发展,公司对项目开发周期不断缩短,我们面对各种需求,使用原有对接方式,各端已经很难快速应对各种需求,更难以提高效率.于是,我们不得不重新制定对接规范.开发逻辑以便快速上线项目. 我 ...

  7. 基于spring security实现vue2前后端分离的双token刷新机制(完整代码详解,含金量拉满!)

    目录 一.前言: 核心功能概要: 通过加密算法创建一个用户: 二.后端 代码详解: 1.代码整体结构: 2.所需依赖: 3.UserDetailServiceImpl拦截用户登陆: 4.所需工具类 4 ...

  8. springboot jwt token前后端分离_为什么要 前后端分离 ?

    作 者:互扯程序 来 源:互扯程序 广而告之:由于此订阅号换了个皮肤,系统自动取消了读者的公众号置顶.导致用户接受文章不及时.您可以打开订阅号,选择置顶(星标)公众号,重磅干货,第一时间送达! 本文知 ...

  9. Django CSRF(什么是CSRF?)\Django前后端分离csrf token获取方式

    文章目录 Django CSRF 什么是CSRF? Django CSRF Django CSRF 中间件 Django,Ajax提交csrf_token处理 Django 设置 cookie 中的 ...

最新文章

  1. SQL设置语言,返回中文”星期几”格式
  2. hdu1043 经典的八数码问题 逆向bfs打表 + 逆序数
  3. thrift多平台安装
  4. Octave matlab中运行.m文件方式对比
  5. 初始化toolstrip
  6. go 默认http版本_【每日一库】超赞的 Go 语言 INI 文件操作
  7. 信息安全工程师笔记-数字证书
  8. 盘点云计算领域不可不读的9本书
  9. python中一切都是对象_python中一切皆对象
  10. 【渝粤教育】国家开放大学2018年春季 0557-21T广告设计 参考试题
  11. 以下哪些python数字是合法的_3 4j 是合法Python数字类型。
  12. 电脑服务器删除的文件如何复原,电脑怎么恢复文件_彻底删除的文件如何恢复...
  13. 一文带你了解redux的工作流程——action/reducer/store
  14. 商汤科技——机器视觉面试
  15. PHP审计-RIPS
  16. 散射回波仿真Matlab,基于散射中心模型的ISAR回波仿真方法
  17. [模板]线性递推+BM
  18. 10大最受欢迎的国外业务流程管理(BPM)软件
  19. macbookair有没有touchbar_苹果电脑购买建议:2018新款MacBook Pro买不买带Touch Bar的?...
  20. linux 去掉终端控制符,Linux终端显示控制字符

热门文章

  1. PWN-PRACTICE-BUUCTF-5
  2. python爬取文件归类_python爬取各类文档方法归类汇总
  3. 【牛客 - 370 I 】Rinne Loves Xor(按位前缀和,异或)
  4. RabbitMQ初识
  5. 中原标准时间对时_GPS对时系统(时间同步系统)应用电子政务
  6. 培智计算机教学论文,【培智数学论文】_培智数学教学论文
  7. json 潜逃 结构体_JSON还原为结构体 - osc_t5zhwnvx的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. jdk11 后用的指定编码格式,读取文件
  9. 怎样测量地图上曲线的长度_测量长度的特殊方法
  10. 28和lba48命令格式区别_编译Sass(命令行)