java token 超时_前后端分离——token超时刷新策略
前言
记录一下前后端分离下————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超时刷新策略相关推荐
- 若依前后端分离如何写移动端接口_前后端分离实践的架构设计
前后端分离的项目开发策略已经不是什么新鲜东西了,网上介绍这方面的文章非常多.我自己是在14年的时候接触到的,对这种开发策略一直爱不释手,不管新老项目都会首先用前后端分离的思维先去思考一番.从14年到现 ...
- 前后端分离——token超时刷新策略
前言 记录一下前后端分离下----token超时刷新策略! 需求场景 昨天发了一篇记录 前后端分离应用--用户信息传递 中介绍了token认证机制,跟几位群友讨论了下,有些同学有这么一个疑惑:toke ...
- java 接收前台富文本_前后端分离ueditor富文本编辑器的使用-Java版本
最近在写一个自己的后台管理系统(主要是写着玩的,用来熟悉后端java的知识,目前只是会简单的写点接口),想在项目中编写一个发布新闻文章的功能,想到了使用百度的ueditor富文本编辑器,网上找了很多j ...
- java短视频开发技术_看Java学员如何用前后端分离技术搭建短视频健身APP
知了堂在教学过程中一直十分注重学员的实践能力,每阶段结束必有项目考核,全面检验分析学员学习效果.为更好的进行下一阶段的课程学习,本周一Java32班学员迎来了第二阶段的项目考核. 让我们来看看此次考核 ...
- java会员卡的绑定和解绑_前后端分离项目 — SpringSocial 绑定与解绑社交账号如微信、QQ...
1.准备工作 申请QQ.微信相关AppId和AppSecret,这些大家自己到QQ互联和微信开发平台 去申请吧 还有java后台要引入相关的jar包,如下: org.springframework.s ...
- cors 前后端分离跨域问题_前后端分离之CORS跨域访问踩坑总结
前言 前后端分离的开发模式越来越流行,目前绝大多数的公司与项目都采取这种方式来开发,它的好处是前端可以只专注于页面实现,而后端则主要负责接口开发,前后端分工明确,彼此职责分离,不再高度耦合,但是由于这 ...
- 若依前后端分离如何写移动端接口_前后端分离后,如何定义接口规范~
小Hub领读: 前后端分离的趋势下,该怎么定义规范,来学习学习吧哈! 作者:猿码架构 www.jianshu.com/p/c81008b68350 1. 前言 随着互联网的高速发展,前端页面的展示.交 ...
- elementui 按钮 表单_前后端分离,文件上传下载(springBoot+vue+elementUI)
1.介绍 本文主要是介绍前后端分离的上传下载,后端使用的是SpringBoot,持久层用的是mybatis-plus,前端用的Vue,UI用的elementUI,测试了一下,文本,图片,excel,都 ...
- vue后端必须接口吗_前后端分离模式,后端说开发完才能给接口文档,合理吗
背景: 汇总了下老王在其他平台的原创回复,欢迎关注老王原创公众号[软件老王],关注不迷路. 一.后端开发完接口才给出接口文档,合理吗? 本人所在的项目组做项目过程中,后端不会先给出接口文档,而是要等他 ...
- 若依前后端分离如何写移动端接口_前后端分离架构概述
1.背景 2.未分离时代(各种耦合) 3.半分离时代 4.分离时代 5.总结 <Netty 实现原理与源码解析 -- 精品合集> <Spring 实现原理与源码解析 -- 精品合集& ...
最新文章
- 多线程join(加入)
- 大型网站架构系列:消息队列
- 软件工程师到30岁就要转行?
- c# out关键字 vb_c# 关键字:ref 和 out
- python 对象_Python小课堂面向对象
- 好玩有趣,Google 首款小程序来啦!
- React Router入门指南
- 微信小程序(12)--倒计时
- 集成微信支付的代码。兼容小程序,扫码,app,公众号。h5 支付 ,以及 服务商提现...
- MySQL数据库设计常犯的错以及对性能的影响
- 区块链 FISCO BCOS学习文章(2)-FISCO BCOS怎么搭建
- length与length()
- 麟龙指标通达信指标公式源码_【通达信】麟龙量能饱合度指标公式源码
- java 动态生成表格_js中动态生成表格
- chmod 755 filename
- 多媒体计算机软件按功能分为,多媒体软件可分为
- java中intern_Java中的intern()方法是什么?
- 蓝桥 字符串跳步 JAVA
- 博客群建软件-如何让链接效果的最大化
- 【微信技术-微信小程序】------- 渐进式骨架屏(加载流)(第二篇)
热门文章
- 线程的简单理解,适用于初接触的小白,另类例子讲解,通俗易懂
- linux7配置永久路由,CentOS7添加永久静态路由
- java 正则表达式 替换 html,java 正则表达式 替换 html
- 简述dijkstra算法原理_路径规划算法(1)--Dijkstra和Floyd算法
- 转自weiphone]在美做开发多年,写给国内apple开发新手的一些心得,无教程
- [洛谷P3292][SCOI2016]幸运数字
- EasyUI Dialog 对话框
- Oracle技术之使用dd复制asm中文件
- 投身管理工作(项目经理修炼手册正文的开头)
- java rfid 写入_怎么使用java来读取外接RFID数据