前言

记录一下前后端分离下————token超时刷新策略!

需求场景

昨天发了一篇记录 前后端分离应用——用户信息传递 中介绍了token认证机制,跟几位群友讨论了下,有些同学有这么一个疑惑:token失效了,应该怎么做?强制定向到登录页?

其实理论上如果是活跃用户,token失效后,假如用户正在操作表单,此时突然定向到登录页面,那用户体验太差了。

实现目标

延长token过期时间

活跃用户在token过期时,在用户无感知的情况下动态刷新token,做到一直在线状态

不活跃用户在token过期时,直接定向到登录页

登录返回字段

如何签发token,请看上一篇推文,这里不做过多介绍。先看看登录接口返回的数据如下:

@Data

public class LoginVo implements Serializable {

private static final long serialVersionUID = 6711396581310450023L;

//...省略部分业务字段

/**

* token令牌 过期时间默认15day

*/

private String jwt;

/**

* 刷新token 过期时间可以设置为jwt的两倍,甚至更长,用于动态刷新token

*/

private String refreshJwt;

/**

* token过期时间戳

*/

private Long tokenPeriodTime;

}

具体返回字段的意义请看注释,这里再简要说明:

jwt:用户正常访问接口时提交的token,过期时间设置长一些,15day吧

refreshJwt:刷新token 过期时间可以设置为jwt的两倍,甚至更长,用于动态刷新token时候提交后台验证

tokenPeriodTime:token过期时间戳,前端每次调用接口前需要主动判断是否已经过期,如果过期则提交refreshJwt访问token刷新的接口进行刷新

动态刷新token

前端检测到token过期后,携带refreshJwt访问后台刷新token的接口,服务端在拦截器中依然对refreshJwt进行解析鉴权

假如refreshJwt也过期了,提示登录过期,强制跳转登录页

假如refreshJwt还在有效期,则签发新的token返回,前端使用最新的token进行接口请求

总结

如果是活跃用户,那么允许他在refreshJwt过期时间与token过期时间的差值这段时间内,不停的动态刷新token,使其做到无感知的状态下一直保持登录状态

如果用户不活跃,在refreshJwt过期时间到了,依然没有使用系统,那么将判定为不活跃用户,此时应当重定向到登录页了

最后

篇幅较短,主要是延续上一篇 前后端分离应用——用户信息传递 遗留问题做一下总结。如果你有更好的做法,欢迎留言告知我,谢谢啦。后续会不定期更新原创文章,欢迎关注公众号 「张少林同学」!

java token 超时_前后端分离——token超时刷新策略相关推荐

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

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

  2. 前后端分离——token超时刷新策略

    前言 记录一下前后端分离下----token超时刷新策略! 需求场景 昨天发了一篇记录 前后端分离应用--用户信息传递 中介绍了token认证机制,跟几位群友讨论了下,有些同学有这么一个疑惑:toke ...

  3. java 接收前台富文本_前后端分离ueditor富文本编辑器的使用-Java版本

    最近在写一个自己的后台管理系统(主要是写着玩的,用来熟悉后端java的知识,目前只是会简单的写点接口),想在项目中编写一个发布新闻文章的功能,想到了使用百度的ueditor富文本编辑器,网上找了很多j ...

  4. java短视频开发技术_看Java学员如何用前后端分离技术搭建短视频健身APP

    知了堂在教学过程中一直十分注重学员的实践能力,每阶段结束必有项目考核,全面检验分析学员学习效果.为更好的进行下一阶段的课程学习,本周一Java32班学员迎来了第二阶段的项目考核. 让我们来看看此次考核 ...

  5. java会员卡的绑定和解绑_前后端分离项目 — SpringSocial 绑定与解绑社交账号如微信、QQ...

    1.准备工作 申请QQ.微信相关AppId和AppSecret,这些大家自己到QQ互联和微信开发平台 去申请吧 还有java后台要引入相关的jar包,如下: org.springframework.s ...

  6. cors 前后端分离跨域问题_前后端分离之CORS跨域访问踩坑总结

    前言 前后端分离的开发模式越来越流行,目前绝大多数的公司与项目都采取这种方式来开发,它的好处是前端可以只专注于页面实现,而后端则主要负责接口开发,前后端分工明确,彼此职责分离,不再高度耦合,但是由于这 ...

  7. 若依前后端分离如何写移动端接口_前后端分离后,如何定义接口规范~

    小Hub领读: 前后端分离的趋势下,该怎么定义规范,来学习学习吧哈! 作者:猿码架构 www.jianshu.com/p/c81008b68350 1. 前言 随着互联网的高速发展,前端页面的展示.交 ...

  8. elementui 按钮 表单_前后端分离,文件上传下载(springBoot+vue+elementUI)

    1.介绍 本文主要是介绍前后端分离的上传下载,后端使用的是SpringBoot,持久层用的是mybatis-plus,前端用的Vue,UI用的elementUI,测试了一下,文本,图片,excel,都 ...

  9. vue后端必须接口吗_前后端分离模式,后端说开发完才能给接口文档,合理吗

    背景: 汇总了下老王在其他平台的原创回复,欢迎关注老王原创公众号[软件老王],关注不迷路. 一.后端开发完接口才给出接口文档,合理吗? 本人所在的项目组做项目过程中,后端不会先给出接口文档,而是要等他 ...

  10. 若依前后端分离如何写移动端接口_前后端分离架构概述

    1.背景 2.未分离时代(各种耦合) 3.半分离时代 4.分离时代 5.总结 <Netty 实现原理与源码解析 -- 精品合集> <Spring 实现原理与源码解析 -- 精品合集& ...

最新文章

  1. 多线程join(加入)
  2. 大型网站架构系列:消息队列
  3. 软件工程师到30岁就要转行?
  4. c# out关键字 vb_c# 关键字:ref 和 out
  5. python 对象_Python小课堂面向对象
  6. 好玩有趣,Google 首款小程序来啦!
  7. React Router入门指南
  8. 微信小程序(12)--倒计时
  9. 集成微信支付的代码。兼容小程序,扫码,app,公众号。h5 支付 ,以及 服务商提现...
  10. MySQL数据库设计常犯的错以及对性能的影响
  11. 区块链 FISCO BCOS学习文章(2)-FISCO BCOS怎么搭建
  12. length与length()
  13. 麟龙指标通达信指标公式源码_【通达信】麟龙量能饱合度指标公式源码
  14. java 动态生成表格_js中动态生成表格
  15. chmod 755 filename
  16. 多媒体计算机软件按功能分为,多媒体软件可分为
  17. java中intern_Java中的intern()方法是什么?
  18. 蓝桥 字符串跳步 JAVA
  19. 博客群建软件-如何让链接效果的最大化
  20. 【微信技术-微信小程序】------- 渐进式骨架屏(加载流)(第二篇)

热门文章

  1. 线程的简单理解,适用于初接触的小白,另类例子讲解,通俗易懂
  2. linux7配置永久路由,CentOS7添加永久静态路由
  3. java 正则表达式 替换 html,java 正则表达式 替换 html
  4. 简述dijkstra算法原理_路径规划算法(1)--Dijkstra和Floyd算法
  5. 转自weiphone]在美做开发多年,写给国内apple开发新手的一些心得,无教程
  6. [洛谷P3292][SCOI2016]幸运数字
  7. EasyUI Dialog 对话框
  8. Oracle技术之使用dd复制asm中文件
  9. 投身管理工作(项目经理修炼手册正文的开头)
  10. java rfid 写入_怎么使用java来读取外接RFID数据