首页 > 其他分享 >关于jwt 续签的问题

关于jwt 续签的问题

时间:2022-11-24 06:22:20浏览次数:39  
标签:redis jwt refresh access token 关于 续签 客户端

方案一:

  就一个token(access_token),续签就是token到期的时间设置长一点(比如24小时)这种可能有安全问题,安全性要求高的不考虑这种,但简单一般小项目可以用个人博客企业官网之类

方案二:

  一个token 时间可以短些比如30分钟,当验证token过期后,客户端请求刷新token的接口生成新的 但为了保证token被盗用及时止损需要刷新token接口做限制,比如一个ip或者一个用户能在一天时间内只能48次 超过或者等于就重新授权登录

优点就是能够及时控制止损,可以用在一般的app(减少api暴露但也可解包)和网站,但安全系数依然不是很高。

方案三:

  两个token (access_token和refresh_token)。首先服务端生成access_token(比如30分钟)和refresh_token(24小时) ,然后存在到客户端access_token放在cookie 同时设置httponly ,refresh_token 则放在客户端的localstorage里,

放在localstorage 是减少传输 减少中间攻击之类的拦截到,至于放在localstorage可能被xss,但access_token xss拿不到,可能被中间人攻击拿到,但成增加了破解的成本。这都是增加了破解的成本来保证安全的。

当然还是可能被破解,所以 还可以在服务端增加refresh_token黑名单(这要定期清理了,不然有性能问题)。在此还可以用redis来存refresh_token,但客户端就不要存了,access_token做键(当然可以用UUID都行,不过需要存在载体Payload中)

refresh_token做值存到redis,设置过期时间,到期redis了就没有了。不过这种就不符合jwt规范了,但要也要比传统的cookie-session拓展要好不少者也是大多数人用jwt,相当于一个渐进式的。安全和性能 用户极致量共享会话后的拓展会好些。

 这种可以用在大多数应用

对于安全问题没有绝对基本的安全保证都是增加破解成本,和止损来达到减少损失。

 

标签:redis,jwt,refresh,access,token,关于,续签,客户端
From: https://www.cnblogs.com/yangshiyi/p/16920712.html

相关文章

  • 关于 Vue App 开发的一些思考
    我独立完成了三个前端SPA项目,从Vue1&Vuex1到Vue2&Vuex2都有使用。从最先开始的四个模块、八个功能,到最后多模块嵌套、数十个功能,项目的难度越来越大,复杂度越......
  • 关于乾坤加载子应用导致跨域?
    问题:加载百度地图sdk导致跨域由此联想到的问题,为什么乾坤可以劫持很多请求,子应用的js和css资源加载都会被拦截到?通常加载script的方式通过script标签通......
  • JWT有状态登陆与无状态登陆
    单点登录与JWTJWT 全称: JsonWebToken。作用: JWT的作用是 用户授权(Authorization) ,而不是用户的身份认证(Authentication) 。用户认证 指的是使用用户名、密码......
  • Day20.1:关于this、super的解析
    this、super详解当我们在外部程序调用一个类的方法,如果这个类的方法与其父类的方法重载,我们需要用this、super进行区分this在Java中是一个复杂的关键字,this的使用形式体......
  • mysql关于优化设计模式与数据类型
    一、设计数据结构的字段数据类型基本原则是:1、更小的通常更好。就是尽量使用可以正确存储数据的最小数据类型,主要更小的数据类型可以更快,占用磁盘空间,内存和CPU缓存,处理周期......
  • 关于配置执行定时任务和异步任务的线程池配置类
    packagecom.liftsail.rsademo.utils;importlombok.extern.slf4j.Slf4j;importorg.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;importorg.springf......
  • 关于CRM及其技术转化的思考
    事先声明,在此我只谈个人想法,如有对其它标准冲突或雷同纯属巧合。我自已理解的CRM(客户关系管理):首先是一种公司与公司间的商业关系(或许有非直接商业性质),但最终的表现还是人......
  • 关于因果学习
    知乎用户“秣马”的评论“我也来个借花献佛的交流——休谟关于因果关系的《人类理智新论》里有个结论——通过实验、经验判定的因果关系往往是可疑的——康德对此有回答......
  • 关于String和byte数组之间的转化问题
    上次在项目中遇到了这样的一个问题,我从接口取到的rawData数组的长度是8192,我将这个byte数组用new String(rawwData)的方法将byte数组转化为字符串,作为参数传给另外的一个方......
  • isBlank、isEmpty的关于String字符串进行判空的区别(源码角度分析)
    现在判空一般都用StringUtils这个工具类,是apache.lang包下面的一般是isBlank用的会多一点但是我们先看看isEmpty()的源码1publicstaticbooleanisEmpty(finalCharS......