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

spring-boot--redis调整token过期时间

redis调整token过期时间

  • 方法截图
  • 问题描述
  • 实现
    • 这是用来给redis来设置值和过期时间的方法
    • 📋 TimeUnit 主要取值
    • 设置成永久时间
    • 对现有方法进行改造

在这里插入图片描述

方法截图

在这里插入图片描述

问题描述

本次之所以修改过期时间是因为根据需求需要记住密码这个功能,开发完成后需要长期记住密码,这样就需要使用到长期有效的过期时间,这种情况下我们选用的是30天失效然后登录
但是在涉及到cas的时候这个方案就存在问题,因为我们的鉴权依赖于父级平台传过来的相关信息生成的token,由于无法监听父级是否鉴权失效,导致咱们不能够自主的将身份令牌失效了,所以就需要用到将token调整成为永不过期的了

实现

这是用来给redis来设置值和过期时间的方法

// key: 名称
// value: 值
// timeout: 过期时间
// timeUnit 时间类型
redisTemplate.opsForValue().set(key, value, timeout, timeUnit);

📋 TimeUnit 主要取值

TimeUnit 值 中文含义 示例 相当于秒数

TimeUnit.NANOSECONDS 纳秒 1秒 = 1,000,000,000纳秒 1/1,000,000,000
TimeUnit.MICROSECONDS 微秒 1秒 = 1,000,000微秒 1/1,000,000
TimeUnit.MILLISECONDS 毫秒 1秒 = 1,000毫秒 1/1,000 TimeUnit.SECONDS 秒 60秒 =
1分钟 1 TimeUnit.MINUTES 分钟 60分钟 = 1小时 60 TimeUnit.HOURS 小时 24小时 =
1天 3,600 TimeUnit.DAYS 天 7天 = 1周 86,400

设置成永久时间

其中不配置时间和时间类型就可以设置永久时间

redisTemplate.opsForValue().set(key, value);

对现有方法进行改造

这样改造的好处就是在传值的时候对特殊需要调整过期时间的可以通过-1设置成永远都不过期,还可以兼容让别的方法的过期时间继续执行

    /*** 缓存基本的对象,Integer、String、实体类等** @param key 缓存的键值* @param value 缓存的值* @param timeout 时间* @param timeUnit 时间颗粒度*/public <T> void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit){if (timeout > 0) {redisTemplate.opsForValue().set(key, value, timeout, timeUnit);} else {// 永久缓存redisTemplate.opsForValue().set(key, value);}}
http://www.dtcms.com/a/395332.html

相关文章:

  • 树形表格示例
  • 【完整源码+数据集+部署教程】六角螺母分割系统: yolov8-seg-EfficientHead
  • 零基础搭建赛博朋克个人主页:蓝耘Claude Code完整实战教程
  • C语言第19讲
  • 【含文档+PPT+源码】基于springboot+ssm的智能人脸识别养老系统的设计与开发
  • Linux-> UDP 编程3
  • 分库分表后ID冲突怎么解决?分布式ID生成方案。保证ID全局唯一性。
  • 域名如何解析家庭ip
  • LeetCode 2460.对数组执行操作
  • Unity Time.time 详解
  • LeetCode 922.按奇偶排序数组 II
  • 请简要谈谈Android系统的架构组成?
  • LeetCode 面试经典 150_哈希表_两数之和(44_1_C++_简单)
  • Kafka是什么,架构是什么样的?Kafka概述
  • TCN时序卷积网络、CNN、RNN、LSTM、GRU神经网络工业设备运行监测、航空客运量时间数据集预测可视化|附代码数据
  • 【HarmonyOS】HMRouter关键原理-动态import
  • 【Python】面向对象(三)
  • 05-django项目的跨域处理
  • go语言并发
  • Qt QSS 美化完整教程文档
  • jwt与token+redis,哪种方案更好用?
  • 基于react的前端项目开发和实战总结(umi框架)
  • 【iOS】YYModel
  • 修改docker配置使其支持本机tcp连接
  • ReportFragment:Android 生命周期的桥梁与兼容性解决方案
  • 力扣Hot100--234.回文链表
  • 视觉语言大模型(VLM)的产业落地:从Qwen-VL技术解析到医疗、车险行业革新
  • 零基础新手小白快速了解掌握服务集群与自动化运维(七)Nginx模块--Nginx Web服务
  • 一个硬盘选MBR 还是GPT
  • 【含文档+PPT+源码】基于GPT+SpringBoot的个人健康管理与咨询系统设计与实现