0
g
原创首发

水一篇,我不想用JWT了,能不能稍微改造一下呢?

拉大锯 发表于 2024-05-23 22:40 699
评论
0/240
  • 程序员soulmate
    可以都存在Redis,一个AccessToken和一个RefreshToken,然后AccessToken的时长一般2个小时,RefreshToken就可以设置为1-3天,当AccessToken过期Redis查不到的时候,就用RefreshToken重新生成新的返回到响应体,前端自动替换,这里会有并发问题,所以当AccessToken需要再续上1-3分钟的有效时长,这样就完美的替换掉了原来的AccessToken和RefreshToken
    2024-05-24 20:58  回复
    1353014317951348736
    • 拉大锯  回复 @程序员soulmate
      这样不好,redis的资源要比mysql的贵的,速度也是。这就是为什么做一个2小时的token。而refresh的调用频率比较低,所以持久化到硬盘上。
      2024-05-24 22:00   回复 1153952789488054272
  • ccTyL
    话说在jwt存用户信息的都是少数吧,目前看各大网站的jwt都不会特别长
    2024-05-24 08:10  回复
    1314408005793603584
    • 拉大锯  回复 @ccTyL
      看场景,主要是无状态,又携带信息,还是防止篡改。必要的场景会使用。
      2024-05-24 10:09   回复 1153952789488054272
  • ccTyL
    我们都是jwt+redis一起用的,通常都不会在token带太多信息,一般都是放个id,然后网关在redis查询。如果退出登陆就清除redis,这样即使jwt没过期也不能登陆
    2024-05-24 08:09  回复
    1314408005793603584
    • 拉大锯  回复 @ccTyL
      那就不需要jwt了呀。你还要解码,你直接把对象转成json存redis里不就可以了。
      2024-05-24 10:08   回复 1153952789488054272
    • ccTyL  回复 @拉大锯
      还是要jwt的呀,主要是防止篡改,以及一个过期问题。确实是把json存在redis的,只是key使用的是用户id
      2024-05-24 11:12   回复 1314408005793603584
    • 拉大锯  回复 @ccTyL
      过期,你直接用redis的过期不就可以了?拿不到就是过期了呀。
      2024-05-24 11:21   回复 1153952789488054272
    • ccTyL  回复 @拉大锯
      不一样的,jwt的过期,说明是长时间未登陆的过期(配合refreshtoken)。redis取不到,可能是主动注销,或者异地登陆被挤下线。所以是两种情况
      2024-05-24 11:48   回复 1314408005793603584
    • 拉大锯  回复 @ccTyL
      你没看文章吧?我把refresh的作用换了另外一种方式实现。本质上就是你的内容里带了时间,只是你用工具去解析,超过了时间给你抛异常而已。你自己也可以做这些动作的。
      2024-05-24 13:09   回复 1153952789488054272
    • ccTyL  回复 @拉大锯
      我再细看一下
      2024-05-24 16:20   回复 1314408005793603584
推荐文章
阳光沙滩无法访问/登录的这几天!
token生成造成javax/xml/bind/DatatypeConverter错误
我所理解的DoubleToken和一点疑惑
阳光沙滩博客系统-用户登录实现
阳光沙滩博客系统-JWT生成和解析
JavaWeb单点登录的实践
Nuxt.js如何拿到cookies?token问题?
Android项目升级插件到kotlin 2.1.0后混淆网络请求异常
Java17编译时的出错
SFT微调训练、DPO偏好训练、CPT继续预训练是什么?
Nuxt 3 中的 $fetch 方法详解
[AI问答]api.js引入了http.js,https.js中我也想引入api.js,会不会出现循环引入的问题呢?
el-dropdown element ui 鼠标悬浮时有外框
AndroidStudio导入jar,aar到项目kts/groovy方式
阿里云CDN缓存刷新
前端vue.js对字符串进行json校验
AndroidStudio 2024.2.2发布apk时候更新apk名字Groovy版
Kubersphere 停止pod时一直在terminating
记生产服务器CPU飙升的事故!!!
萌新教你对接大模型?
记一次问题解决思路:关于无法连接内网ws服务端的离奇bug
概念:AI 工作流、RAG 管道、Agent、模型管理、可观测性
Android View 截图 转bitmap 然后保存成图片 View 上面弹框什么的不会被 截取到
遇到个问题:Public Key Retrieval is not allowed
mybatisplus 分页用不了了?
Vue3中动态的ref怎么使用?
Android Java创建ViewModel新api
spring cloud 快速开始 seata 篇
spring cloud 快速开始 之 gateway篇
集群部署服务的时,如何确保只有一个服务做了执行?
文章目录