退出登录时,如果不使JWT Token失效会产生如下2个问题

问题1-未过期的token还是可以用

要是用户在多个设备登录了,而且本地保存了token。当一个地方丢弃token,但是这个token要是没有过期,那之前token还是可以用的。

问题2-多个设备会出现死循环

如果我把token存到数据库,当用户退出登录或者修改密码,更新token。当用户下次拿着之前的token来认证时,找到该用户数据库存的token,两个对比一下,如果一样就通过,否则让用户登录。有一个问题,如果这样做,要是有两设备,就死循环了。一个设备登录了,token就会变,导致另一个去登录,然后这个token又失效了,成死循环了。

解决

其实要完美地失效JWT是没办法做到的。

"Actually, JWT serves a different purpose than a session and it is not possible to forcefully delete or invalidate an existing token."

这篇文章写得比较简单易懂:https://medium.com/devgorilla...

有以下几个方法可以做到失效 JWT token:

将 token 存入 DB(如 Redis)中,失效则删除;但增加了一个每次校验时候都要先从 DB 中查询 token 是否存在的步骤,而且违背了 JWT 的无状态原则(这不就和 session 一样了么?)。

维护一个 token 黑名单,失效则加入黑名单中。

在 JWT 中增加一个版本号字段,失效则改变该版本号。

在服务端设置加密的 key 时,为每个用户生成唯一的 key,失效则改变该 key。

jwt token注销_退出登录时怎样实现JWT Token失效?相关推荐

  1. jwt token注销_辩证的眼光搞懂 JWT 这个知识点

    什么是 JWT 概念 JSON Web Token(简称 JWT)是目前最流行的跨域认证解决方案. JWT 原理 JWT 组成 JWT 由三部分组成:Header,Payload,Signature ...

  2. 退出登录时清空session中的数据

    在完成退出登录时我之前都只是跳转的login.jsp页面就可以了,但是这样的话会存在非常大的安全隐患,所以在退出的时候我们要先将存在session中的对象等等数据都清空了,再跳转回登录页面,下面是清空 ...

  3. jwt token注销_【原创精选】OAuth 2.0+JWT+spring security完成认证授权-生产级-附带源码...

    前言导读 分析一下为什么要用OAuth2和JWT来做 1. **单点登录(SSO)**方案单击登录方案是最常见的解决方案,但单点登录需要每个与用户交互的服务都必须与认证服务进行通信,这不但会造成重复, ...

  4. jwt token注销_详解JWT token心得与使用实例

    本文你能学到什么? token的组成 token串的生成流程. token在客户端与服务器端的交互流程 Token的优点和思考 参考代码:核心代码使用参考,不是全部代码 JWT token的组成 头部 ...

  5. html退出登录_退出登录 0152

    用户只需要向 Spring Security 项目中发送/logout 退出请求即可. 1 退出实现 实现退出非常简单,只要在页面中添加/log <a href="/logout&qu ...

  6. jwt token注销_如何在注销时销毁JWT令牌?

    6 个答案: 答案 0 :(得分:42) JWT存储在浏览器上,因此删除在客户端删除cookie的令牌 如果您还需要在服务器端到期之前使令牌无效,例如帐户已删除/阻止/暂停,密码已更改,权限已更改,用 ...

  7. cookie session token区别_彻底理解cookie,session,token

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者: 墨颜丶 cnblogs.com/moyand/p/9047978.html 发展史 ...

  8. token验证_如何利用 C# 爬取带 Token 验证的网站数据?

    在对文本数据的情感分析中,基于情感词典的方法是最简单也是最常用的一种了. 它的大体思路如下: 对文档分词,找出文档中的情感词.否定词以及程度副词,然后判断每个情感词之前是否有否定词及程度副词,将它之前 ...

  9. 前端刷新token,判断token是否过期,若没有过期则刷新token,过期则退出登录

    所用框架 vue+axios 为什么要刷新token 假设后端设置的token过期时间为10分钟.那么登录以后,过十分钟后token就会过期,这时再去操作系统,所有的请求都不能用,都会报token过期 ...

最新文章

  1. HDU(1847)Good Luck in CET-4 Everybody!
  2. 获取AD里面指定OU或Container里面的计算机以及Lastlogon时间格式转换
  3. TiDB 源码阅读系列文章(十五)Sort Merge Join
  4. Chipseq数据库的建立
  5. Java交换两个Integer-一道无聊的题的思考
  6. 项目: 图书管理系统 【C++ / C】
  7. 爬虫项目(二)---采集从03月02号以来的世界各国疫情数据
  8. python对数组缺失值进行填充
  9. MATLAB语音识别系统[声纹识别]
  10. 会议及作用篇--项目管理(十三)
  11. CSS居中对齐的各种方式
  12. latex模板中 引入ORCID链接的方法
  13. element ul 日期插件
  14. 支付宝接口调用出现INVALID_PARAMETER错误,订单信息无法识别
  15. MAC OS X mountain lion强制关机
  16. GRU和LSTM的单元结构
  17. PyQt5 第七章 综合篇(一)
  18. elementUI table表格合并相同的内容
  19. C语言strchr函数
  20. 找完工作后的感受总结,用以共勉

热门文章

  1. 基于CSE的微服务架构实践-Spring Boot技术栈选型
  2. git clone --depth=1 -b 4.24
  3. 如何查看pytorch中层的名字
  4. 高等组合学笔记(九): 球盒模型的十二模式,分拆的生成函数
  5. LeetCode-1052:爱生气的书店老板
  6. html图片红叉,ireport 用html页面上 图片怎么都出不来 全是红叉的处理办法
  7. 语言 物品竞拍系统_整理家务不用愁!HSR家庭自主整理机器人系统
  8. python安装依赖包经常出错怎么办_Python 下载依赖包环境经常失败超时解决方法...
  9. 游戏可以html+上运行吗,运行多个,如果在HTML游戏
  10. 卷积核权值初始化_Pytorch卷积层手动初始化权值的实例