如标题所示

我再详细描述一下我遇到的问题,如果我再发送请求的试试,后台验证header中的token,如果这时候,发现token过期,然后一系列判断其为合法token,允许token刷新,后台主动刷新token,并且成功获得新的token,那么问题来了:

因为请求的接口是有返回信息的,我这时候是返回重新刷新的token给前端吗,还是获得新的token后,直接返回接口请求应该返回的数据

1.如果是直接返回token,那前端是不是每个带上token的请求,都需要判断是否有token刷新返回,如果是返回刷新的token,那不是又要用新返回的token,重新发送一次请求???我觉得应该不会这么做

2.如果是返回接口应该返回的具体数据,那token怎么办?这个时候后台刷新了token,然而前端却还是保存的那个过期了的token,不过后台可以把新的token直接设置到返回的方法体中的header中,如果是这样处理,那前端怎么判断header中的token是刷新了的,难不成还是每个带token的请求前端都要去返回的数据中获取header中的token?感觉又回到了原点…..

求各位大佬帮助下,以上两种方法有没有什么比较好的解决方法,或者抛开我的两种方法,有其他合适的,符合我的需求的解决方法,小弟大学生一枚,给自己挖的坑,想填好

回答

参考微信做法

返回 token 的时候,同时返回了还有多少秒过期 ($expire 秒数)

前端保存 token 同时,记下啥时候过期 (now + $expire)

前端 调用用前判断 如果 token 过期了就先自己主动 刷新 token

这部分可以做成一个 getToken()方法 ,方法里处理掉过期判断及重新获取 token,对已有的代码逻辑不产生影响

后端的逻辑很简单,token 非法 或 过期 就返回错误

token失效了 就返回失败

让用户自己登录去

讲道理,,简单点你可以这样,

首先当你请求后端,后端发现token过期,这个时候后端肯定给你返回error对吧,

然后你这个时候需要在请求刷新token的接口,而不是同时让服务端给你token对吧,

请求刷新token的接口成功之后,保存到哪里都可以,什么cookie啊之类的,然后呢,带上新的token重新请求之前的api,

这个方案我觉得挺适合你的。。。

token过期,只能重新登录

用户每次请求过来都要修改token的过期时间

token自用户登录后就不能再变更了

token在登录时保存,每次请求头都加上token

如果请求后端发现前端token不对(过期或是什么其他原因)返回错误,前端跳转到登录页面重新登录

token都过期了就重新登录得了,还返回个新的给他那还有啥意义

把token写到cookie里一劳永逸

如果需求要在禁cookie下运行, 前端写一个ajax全局响应拦截器, 每次响应都把响应头的token刷新一次, 并每次判断状态码决定是否跳转登陆页面

1.后端判断token过期 直接返回401

2.前端保存token过期时间 判断如果过期则把前端请求添加到一个队列里面 先执行刷新token操作

3.等待获取到新的有效token后 再执行队列里面的请求操作

1、token时返回失效码(如1002),前端根据失效码跳转到登录界面

2、前端发起请求到后台,先验证token,token失效时(过期),后台刷新token,将token与请求数据一起返回,前根据返回体是否带有token,进而判断token是否刷新,若刷新,则将token重新保存(推荐localStorage)

java如何判断token过期_【Java】后台判断token过期,后台刷新token,接下来该如何处理...相关推荐

  1. java不同项目加token访问_利用JWT实现前后端分离的Token验证

    写在前面:本篇文章的代码图片展示均使用carbon绘制,图片质量很高,如果图片过小可以点击查看原图.项目实例前端部分使用基于Angular的Ionic框架(TypeScript),使用Spring B ...

  2. java 微信群发多图文_[Java教程]httpClient实现微信公众号消息群发

    [Java教程]httpClient实现微信公众号消息群发 0 2016-09-21 20:00:10 1.实现功能 向关注了微信公众号的微信用户群发消息.(可以是所有的用户,也可以是提供了微信ope ...

  3. java类全路径简写_[JAVA] JAVA 类路径

    Java 类路径 类路径是所有包含类文件的路径的集合. 类路径中的目录和归档文件是搜寻类的起始点. 虚拟机搜寻类 搜寻jre/lib和jre/lib/ext目录中归档文件中所存放的系统类文件 搜寻再从 ...

  4. java对数字的处理_[java初探10]__关于数字处理类

    前言 在我们的日常开发过程中,我们会经常性的使用到数字类型的数据,同时,也会有众多的对数字处理的需求,针对这个方面的问题,在JAVA语言中.提供解决方法的类就是数字处理类 java中的数字处理类包括: ...

  5. 编程判断元素归类_编程练习-判断是否为易混淆数

    题目来源:LeetCode 给定一个数字 N,当它满足以下条件的时候返回 true: 把原数字旋转180°以后得到新的数字. 如 0, 1, 6, 8, 9 旋转 180° 以后,得到了新的数字 0, ...

  6. python判断回文_用python判断回文数

    信息举报 时间:2020-11-23 本页为您甄选多篇描写用python判断回文数,用python判断回文数精选,用python判断回文数大全,有议论,叙事 ,想象等形式.文章字数有400字.600字 ...

  7. Java代码制作ie浏览器_[Java教程]判断IE浏览器代码实例

    [Java教程]判断IE浏览器代码实例 0 2015-08-12 01:00:19 判断IE浏览器代码实例: 由于当下浏览器类型众多,并且对同一段代码的解读有时候各有不同,所以要根据浏览器的类型来执行 ...

  8. java swing表格翻页_让Swing表格支持远程后台数据翻页

    TWaver Java不但提供了TTable.TElementTable这些表格组件,而且还提供了表格翻页器TPageNavigator.让表格和翻页器结合工作,可以立刻做出一个非常标准的可翻页的表格 ...

  9. java三点确定圆弧_圆弧方向判断方法和三点确定一个圆的计算方法

    圆弧方向判断方法 设p1=(x1,y1) p2=(x2,y2) p3=(x3,y3) 求向量 p12=(x2-x1,y2-y1) p23=(x3-x2,y3-y2) 则当 p12与p23的叉乘(向量积 ...

  10. java手机号判断运营商_根据手机号 判断省份和运营商

    移动号段: 134 135 136 137 138 139 147 148 150 151 152 157 158 159 165 172 178 182 183 184 187 188 198 联通 ...

最新文章

  1. 2022-2028年中国社区体育产业深度调研及投资前景预测报告
  2. 易企cms文章引用地址写法
  3. python的random模块生成随机数
  4. android编程常见问题-程序真机中不显示
  5. JSP Cookie案例
  6. CAN 总线 之一 总线拓扑、物理电平、发展史 详解
  7. 深入浅出不可思议的中文分词技术
  8. 面向对象软件设计原则(一) —— 引子
  9. Spring 笔记
  10. 在SQL Server中使用architectureid
  11. 语音识别算法研究及实现.doc
  12. redis数据类型-列表(List)
  13. 数据库系统原理及mysql应用教程第二版_数据库系统原理及MySQL应用教程(第2版)...
  14. python 自动化测试面试题及答案_自动化测试面试题及答案
  15. H3CNE中Vlan间路由
  16. JavaScript JQuery 交互式Web前端开发
  17. 疾病地图制作_助力旅游业复工复产,这份山西中医文旅地图请收好,就在你家门口...
  18. MarkdownPad 2使用教程
  19. python实现基于SIFT算法的图像配准(仿射变换)
  20. [SOA介绍]什么是SOA

热门文章

  1. 一个案例彻底弄懂Go语言中的map (Golang经典编程案例)
  2. 微信“全透明”模式,让你的微信实现隐身效果!
  3. 计算机 常用命令(超详细)
  4. java连接池的maxIdle该如何配置
  5. tcpdump常用与高级过滤方法整理
  6. 1027: 字符类型判断(C语言)
  7. SitePoint首席执行官为慈善事业走了100公里
  8. [转]2008年最牛语录
  9. 刘未鹏:一直以来伴随我的一些学习习惯
  10. Android常用框架收藏!!!