在使用jwt的过程中发现了两个问题续期退出的问题。

续期

因为jwttoken在签发之后是有过期时间的,所以就存在管理这个过期时间的问题。我看网上有提出解决方案的大致有下面几个

  • 每次更新过期时间,跟session一样,每次请求的时候都会去更新下token过期时间.但是对于jwt来说,更新过期时间就意味着jwttoken会变,那么前端就需要每个请求都去保存一次新的token。这样使得前端的工作变的复杂起来。而且这样做的话,会存在多个令牌同时有效,可能会引起一些安全问题。
  • 还有一个就是每隔一段时间去更新一次token。这种做法也是很多人采用的一种。比如:token过期时间是一个小时。预设每五十五分钟去更新token。这种模式也是需要前端去配合完成的。

退出

因为token在签发之后在一段时间内是一直有效的,那么这种情况,我们怎么去管理登出呢?

  • 简单的方式就是客户端直接删除token。但是这样的话,如果token泄露了也是不安全的。
  • 有人提出退出的时候将token存放在redis中,过期时间设置为跟token的时候一样。当用户在次用旧的token访问的时候,如果发现redis中存在token,那么提示token过期。

对于续期的话,个人觉得第二种方案是比较好的一种方案。而退出的话,如果不考虑泄露的问题,那么第一种方案是比较好的一种方案。但是如果做SSO的话可能第二种方案是比较好的一种,但是在用到了redis之后就违背了jwt的设计初衷,需要与数据库交互。
其实个人觉得,jwt的加密方式结合redis这种也是可以采用的。毕竟这些都是为了解决问题。当利用到redis之后,我们就可以将jwt扩展下。在payload部分加载一个生成的refresh token ,这个refresh token也是有过期时间的,我们需要将这个refresh token存放在redis中。这样的话,我们就可以把jwt的过期时间放在这个refresh token中维护。续期也就是维护这个refresh token的过期时间,退出的话 也就是删除这个refresh token就可以了。
其实这样的话就跟传统的token验证一样了,也就是外层加了一个jwt的验证。
可能是我对于这方面了解的比较少,不能想到什么有效的方案。这些都是自己对jwt的一些理解。如果哪位大佬有更好的方案,希望赐教。感谢

原文地址:https://segmentfault.com/a/1190000016650479

关于Jwt的一些思考的更多相关文章

  1. JSON WEB Token(JWT)

    最近面试被问及单点登陆怎么解决?自己的项目前后端分离,自己实现token认证,token有失效时间,token中包含用户基本的信息.且一个当用户重新登陆后,原来的token就会失效,这么安全的一个to ...

  2. 从零玩转SpringSecurity+JWT整合前后端分离

    从零玩转SpringSecurity+JWT整合前后端分离 2021年4月9日 · 预计阅读时间: 50 分钟 一.什么是Jwt? Json web token (JWT), 是为了在网络应用环境间传 ...

  3. 刷题[HFCTF2020]EasyLogin

    前置知识 node.js koa框架常用目录,文件 js弱类型语言,空数组与整数1比较时,返回turue jwt令牌 博客讲解: 关于jwt的讲解: http://www.ruanyifeng.com ...

  4. jwt 实践应用以及特殊案例思考

    JSON Web Token 是 rfc7519 出的一份标准,使用 JSON 来传递数据,用于判定用户是否登录状态. jwt 之前,使用 session 来做用户认证. 以下代码均使用 javasc ...

  5. spring cloud实战与思考(五) JWT之携带敏感信息

    需求: 需要将一些敏感信息保存在JWT中,以便提高业务处理效率. 众所周知JWT协议RFC7519使用Base64Url对Header和Payload的Json字符串进行编解码.A JWT is re ...

  6. spring cloud实战与思考(四) JWT之Token主动失效

    需求: JWT泄露.密码重置等场景下,需要将未过期但是已经不安全的JWT主动失效. 本文不再复述JWT的基础知识,不了解的小伙伴可以自行Google一下.这里主要是针对以上需求聊一聊解决方案.如果服务 ...

  7. 关于JWT(Json Web Token)的思考及使用心得

    什么是JWT? JWT(Json Web Token)是一个开放的数据交换验证标准rfc7519(php 后端实现JWT认证方法一般用来做轻量级的API鉴权.由于许多API接口设计是遵循无状态的(比如 ...

  8. jwt的思考

    什么是jwt jwt的问题 jwt的是实践 https://www.pingidentity.com/en/company/blog/posts/2019/jwt-security-nobody-ta ...

  9. 看图理解JWT如何用于单点登录

    单点登录是我比较喜欢的一个技术解决方案,一方面他能够提高产品使用的便利性,另一方面他分离了各个应用都需要的登录服务,对性能以及工作量都有好处.自从上次研究过JWT如何应用于会话管理,加之以前的项目中也 ...

随机推荐

  1. (转)JobTracker和TaskTracker概述

    一 概述: (1)Hadoop MapReduce采用Master/Slave结构. *Master:是整个集群的唯一的全局管理者,功能包括:作业管理.状态监控和任务调度等,即MapReduce中的J ...

  2. js 时间戳 中国标准时间 年月日 日期之间的转换

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. PAT 天梯赛练习集 L2-016. 愿天下有情人都是失散多年的兄妹

    题目链接:https://www.patest.cn/contests/gplt/L2-016 呵呵.大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人.父母.祖父母.曾祖父母. ...

  4. HDU 1023 Train Problem II( 大数卡特兰 )

    链接:传送门 题意:裸卡特兰数,但是必须用大数做 balabala:上交高精度模板题,增加一下熟悉度 /************************************************ ...

  5. C文件I/O超详细教程

    本文主要参考了C Primer Plus (5th & 6th Edition) 您可以选择本文的部分内容来读,有些内容对于不熟悉MS-DOS的读者可能过于晦涩难懂. C语言文件基本知识 文件 ...

  6. MHA 主从切换过程及日志分析

    本文主要在MHA 切换日志的角度分析MHA切换的过.MHA故障切换过程如下图所示 第一部分:开启MHA 监控 通过分析日志,得到以下步骤: 1.读取MHA manager 节点的配置文件,并检查配置文 ...

  7. cogs 2056. 无平方因子数

    2056. 无平方因子数 ★☆   输入文件:non.in   输出文件:non.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 给出正整数n,m,区间[n,m]内的无 ...

  8. bzoj 1600 &amp; Usaco 月赛 2008 建造栅栏 题解

    [原题] 1600: [Usaco2008 Oct]建造栅栏 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 785  Solved: 443 [Subm ...

  9. HDU 2475 Box 树型转线型 + 伸展树

    树型转线型.第一次听说这个概念. . . , 可是曾经已经接触过了,如LCA的预处理部分和树链剖分等.可是没想到还能这么用,三者虽说有不同可是大体思想还是非常相近的,学习了. 推荐博客http://b ...

  10. 换今日特价图片---轻开电子商务系统(企业入门级B2C站点)

    跟换主页轮播图片一样,一共4个文件: 列表显示文件:site/links/img2.html 加入图片文件:site/links/img2_add.html 加入保存图片文件:site/links/i ...