长短token生成方式及作用

2023-11-23 17:30

本文主要是介绍长短token生成方式及作用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

长短token解决方案

1:解释长短token

    Token的返回:

    用户登陆后,后台会返回给用户两个token,1是长token,2是短token

    有效期:

长token有效期为一个月,短token有效期为1小时

访问与再次获取:

APP每次访问数据携带这短token,如果后台中存在短token则证明短token有效可以进行数据访问。

如果没有查到该短token,则APP使用长token去请求短token,如果长token存在,则请求成功后得到的新短token用于数据访问。

如果长token不存在,则用户需要重新登录获取长短token。

 

 

后台设计:

用户登录->验证数据库,如果登陆成功则返回给APP一个长token,一个短token

    我们在生成长短token的时候将在redis数据库中新增两条记录:

    1:key短token,value随机字符串,有效期1小时

    2:key是长token,value是短token,有效期30天

    环境模拟:

    Redis1:(LT:ELEPH)

    Redis2:(ST:LT)

    如果Redis1超过1小时,短token失效则Redis1消失

    这时我们再去查询Redis2,拿着ST看看能不能取到值,如果能取到值则再生成一个Redis1,之后将ST的Value重置成新生成的短Token,之后Redis2的生存时间不改变

    如果Reids2也失效的话,拿着ST就取不到数据,这时就应该重新登录,重新获取长短token

 

  短token生成:

    Key是短token本体,可以为UUID。。

    Value就是一个固定值吧。Base64 (Base64(FamilyId))

UUID:Eleph 时效性1小时

长token生成:

    Key是长token本体,用Base64 (Base64((FamilyId+时间)))

    Value是短token的UUID 时效性30天

这篇关于长短token生成方式及作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/419582

相关文章

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

linux打包解压命令方式

《linux打包解压命令方式》文章介绍了Linux系统中常用的打包和解压命令,包括tar和zip,使用tar命令可以创建和解压tar格式的归档文件,使用zip命令可以创建和解压zip格式的压缩文件,每... 目录Lijavascriptnux 打包和解压命令打包命令解压命令总结linux 打包和解压命令打

Java实战之利用POI生成Excel图表

《Java实战之利用POI生成Excel图表》ApachePOI是Java生态中处理Office文档的核心工具,这篇文章主要为大家详细介绍了如何在Excel中创建折线图,柱状图,饼图等常见图表,需要的... 目录一、环境配置与依赖管理二、数据源准备与工作表构建三、图表生成核心步骤1. 折线图(Line Ch

Python中常用的四种取整方式分享

《Python中常用的四种取整方式分享》在数据处理和数值计算中,取整操作是非常常见的需求,Python提供了多种取整方式,本文为大家整理了四种常用的方法,希望对大家有所帮助... 目录引言向零取整(Truncate)向下取整(Floor)向上取整(Ceil)四舍五入(Round)四种取整方式的对比综合示例应

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式

将java程序打包成可执行文件的实现方式

《将java程序打包成可执行文件的实现方式》本文介绍了将Java程序打包成可执行文件的三种方法:手动打包(将编译后的代码及JRE运行环境一起打包),使用第三方打包工具(如Launch4j)和JDK自带... 目录1.问题提出2.如何将Java程序打包成可执行文件2.1将编译后的代码及jre运行环境一起打包2

C++一个数组赋值给另一个数组方式

《C++一个数组赋值给另一个数组方式》文章介绍了三种在C++中将一个数组赋值给另一个数组的方法:使用循环逐个元素赋值、使用标准库函数std::copy或std::memcpy以及使用标准库容器,每种方... 目录C++一个数组赋值给另一个数组循环遍历赋值使用标准库中的函数 std::copy 或 std::

spring-boot-starter-thymeleaf加载外部html文件方式

《spring-boot-starter-thymeleaf加载外部html文件方式》本文介绍了在SpringMVC中使用Thymeleaf模板引擎加载外部HTML文件的方法,以及在SpringBoo... 目录1.Thymeleaf介绍2.springboot使用thymeleaf2.1.引入spring

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录