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

Token登录授权、续期和主动终止的方案(Redis+Token(非jwtToken))

1、Redis+Token方案的授权
1.1 基本原理

登录后使用UUID生成token,前端每次请求都会带上这个token作为授权凭证。这种方案是能自动续签,也能做到主动终止。所以很多项目用的都是Redis+Token方案,简单方便问题少。缺点就是需要依赖Redis和数据库。

1.2 基本流程:
  • 设置一个拦截器,不校验登录接口,拦截其他接口

  • 登录接口接收前端传来的用户名密码,去数据库查询该用户名是否存在,该密码是否正确

  • 如果正确则表示登录成功,调用生成Token方法,返回Token给前端

  • Token使用用户id或账号+时间戳+UUID用MD5加密的一串字符串(不建议用其他数据,因为id或账号极少变更的,变更会增加复杂性)

  • 生成后存储到Redis,把Token当作键,用户数据当作值,并设置过期时间

  • 生成Token的方法中,还得防止重复调登录接口,不停生成不同的Token,所以先判断数据库中是否存在键,所以保存token键到redis的同时要在redis中再增加一条用户ID为键Token为值的数据,可以验证该用户是否已经生成过token。

 针对上述重复生成token问题,使用lua优化以下就可以了 


http://www.kler.cn/a/583207.html

相关文章:

  • 点云深度学习系列:PVRCNN——point-voxel融合的分割模型
  • 攻防世界web:NewsCenter(含sqlmap基本参数讲解)
  • 引入其他 YML 配置源 —— Spring Boot 中的 `import` 功能
  • Axios简单说明,快速上手
  • 3.12-2 html
  • 电商数据分析 电商平台销售数据分析 电商平台数据库设计 揭秘电商怎么做数据分析
  • hadoop框架与核心组件刨析(五)ZOOKEEPER及选举深度刨析
  • llamaindex实现企业级RAG应用(一)
  • stm32-RTC时实时钟
  • C++复试笔记(二)
  • 下载文件,文件名乱码问题
  • Java高频面试之集合-10
  • 利用axios库的爬虫程序如何使用HTTP
  • 静态路由配置实验相关过程
  • 【Python】06、流程控制语句
  • 深入理解 MySQL 锁:基于 InnoDB 的并发控制解析
  • stm32 蓝桥杯 物联网 独立键盘的使用
  • LeetCode - #227 基于 Swift 实现基本计算器
  • angular 使用webpack-bundle-analyzer分析包
  • 行为模式---策略模式