当前位置: 首页 > news >正文

一文搞懂:如何在 Redis 中查看芋道 OAuth2 Token 的过期时间

在使用芋道源码(Ruoyi-Vue-Pro)或基于Spring Security OAuth2的项目时,经常会遇到这样的问题:

  • Token 什么时候过期?
  • 用户为什么突然被踢下线?
  • 登录态到底存在哪?
  • Redis 里怎么看 token 剩余有效时间?

本文将通过一步一步实操,教你如何在 Redis 中准确查看 OAuth2 access_token 的过期时间


一、背景说明:芋道的 Token 存在哪里?

在芋道源码中,登录认证通常有两种方案:

  • Sa-Token
  • OAuth2(Spring Security OAuth2)

如果你在 Redis 中看到的 key 是:

oauth2_access_token:xxxx

那么可以100% 确定

✅ 当前项目使用的是OAuth2
❌ 不是 Sa-Token

并且:

  • access_token 存在 Redis
  • 过期时间由 Redis 的 TTL 控制

二、进入 Redis(基础准备)

1️⃣ 连接 Redis

redis-cli

如果有密码 / 指定端口:

redis-cli -h127.0.0.1 -p6379-a your_password

2️⃣ 注意:Redis 有 DB 概念(非常重要)

Redis 默认有DB 0 ~ DB 15
芋道经常把 token 放在 DB 1 / DB 2

先查看当前 Redis 中哪些 DB 有数据:

INFO keyspace

示例输出:

db0:keys=0,expires=0 db2:keys=180,expires=160

说明:token 在 DB 2

切换到对应 DB:

SELECT2

三、查找 OAuth2 Token Key

在 Redis 中执行:

keys *token*

你会看到类似结果:

oauth2_access_token:4ffcf66f153d48b4aa7b347d16ae474c oauth2_access_token:a7344b41b600419fbd6db1336c72e81c ...

说明:

  • 每一个 key 对应一个登录用户的 access_token
  • key 后面的字符串就是 token 本身

四、查看 Token 的过期时间(核心步骤)

1️⃣ 使用 TTL 命令(单位:秒)

TTL oauth2_access_token:4ffcf66f153d48b4aa7b347d16ae474c

返回结果示例:

(integer) 27654

2️⃣ TTL 返回值含义说明

返回值含义
> 0剩余有效时间(秒)
-1永不过期(OAuth2 基本不会)
-2token 不存在 / 已过期

3️⃣ 时间换算示例

TTL = 27654 秒

换算为时间:

  • 27654 秒
  • 7 小时 40 分 54 秒

👉 说明:
这个 token 还有约 7 小时 41 分钟过期


五、如何确认「当前登录用户」用的是哪个 token?

方法一(最推荐)

1️⃣ 在浏览器 Network / 后端日志中找到请求头:

Authorization: Bearer 4ffcf66f153d48b4aa7b347d16ae474c

2️⃣ 把 token 拼到 Redis key 中:

TTL oauth2_access_token:4ffcf66f153d48b4aa7b347d16ae474c

这个 TTL 就是当前用户真实的剩余登录时间


六、Token 过期时间是在哪里配置的?

在芋道源码中,OAuth2 的 token 过期时间通常配置在:

yudao:oauth2:access-token-expire-time:28800# access_token 有效期(秒)refresh-token-expire-time:2592000# refresh_token 有效期(秒)

其中:

28800 秒 = 8 小时

这也是为什么你在 Redis 中看到的 TTL 通常接近 8 小时。


七、常见问题排查总结

❓ keys 查不到 token?

  • 没切对 Redis DB
  • 连错 Redis 实例
  • 项目不是 OAuth2(而是 JWT / Sa-Token)

❓ TTL = -2?

  • token 已过期
  • 用户被强制下线
  • Redis 被清理过

八、总结一句话版本(记住这条就够)

在芋道 OAuth2 项目中,查看 token 过期时间只需要一条命令:

TTL oauth2_access_token:{accessToken}

http://www.cnnetsun.cn/news/132589.html

相关文章:

  • 终极指南:5步快速上手OPC-UA客户端工具
  • Univer表格数据验证与条件格式的终极技巧:5个必备技能快速掌握
  • 焦圈儿“复刻”功能实战:如何让好提示词发挥最大价值?
  • 心理咨询师试用焦圈儿:AI社交能否提供情感支持?
  • PT助手Plus核心架构:模块化设计与事件驱动实战
  • 新手必看:5步解决JDBC连接失败问题
  • Mermaid Live Editor:5个技巧打造专业级图表制作流程
  • RKLLM加速框架:在Rockchip平台实现AI模型高效部署的终极方案
  • 在线答题考试小程序源码系统功能全览 带完整的搭建部署教程以及源代码包
  • marked.min.js入门:5分钟创建你的第一个Markdown解析器
  • vue+Spring Boot的实验室设备监控管理系统的设计与实现_g6499xa5
  • 如何用AI优化Cloudflare配置,提升网站性能
  • 如何高效集成TDesign Vue Next组件库提升开发效率
  • 信息管理毕设2026选题汇总
  • Kotaemon跨境电商客服:多语言支持全球用户
  • YUM707在实际项目中的应用案例分享
  • 医疗产品超声波焊接技术案例是什么?德诺超声波在医疗行业的应用有什么优势?
  • 如何灵活掌控B站API认证?自定义Cookie功能深度指南
  • 【MWORKS使用技巧80】Sysplorer如何读取外部txt文件(二):组件参数设置
  • 手机号码归属地查询库:5分钟快速上手实战指南
  • SKYNET Steam模拟器:零网络依赖的终极局域网游戏解决方案
  • 淋巴瘤化疗越做越糟?偶遇 “抗癌老乡”,4年活成生活达人!
  • 小白也能懂:PostConstruct注解图解指南
  • 快速搭建NAS导航面板:Sun-Panel终极配置指南
  • QR码修复终极指南:让损坏的二维码重获新生
  • 报警管理升级!这款智能安全系统,让隐患无处可藏
  • 基于SpringBoot前后端分离的宠物服务平台
  • 工业散热风扇 24 V 三相 BLDC 驱动:如何用单 N 沟 40 V SGT 把 Rdson 做到 0.75 mΩ
  • DashPlayer:英语学习者的智能视频伴侣,让语言习得事半功倍
  • 指纹特征提取实战:FingerJetFXOSE从入门到精通