Json Web Token
发表于|更新于
|浏览量:
我以为人们在每一个时期都可以过有趣而且有用的生活。我们应该不虚度一生,应该能够说,“我已经做了我能做的事”,人们只能要求我们如此,而且只有这样我们才能有一点欢乐——居里夫人
校验逻辑如下:
我们客户端在每个需要登录的请求带着token访问我们的接口,在服务端的LoginInterceptor中进行校验token
登录逻辑如下:
1.登录校验用户名密码
2.生成token:通过jwt工具类,使用用户名和密码生成token,然后把token存redis,设置过期时间
刷新token逻辑如下:
token过期后返回 “token过期对应的code”,客户端使用一个大于token过期时间的refreshToken去调用刷新token的接口,refreshToken通过校验之后,直接生成新的token
我这里设置的两倍,这样在超过token有效期一倍,小于两倍时,期间可以刷新token,再超时就需要重新登录了
项目大家可以拉下来玩一玩



相关推荐
2023-03-13
spring-guides-accessing-data-jpa
名誉过高,实在是一种害人的负担——福尔特尔 教程网址:https://spring.io/guides/gs/accessing-data-jpa 首先访问 [pre-initialized project](https://start.spring.io/#!type=maven-project&language=java&platformVersion=3.0.1&packaging=jar&jvmVersion=17&groupId=com.example&artifactId=accessing-data-jpa&name=accessing-data-jpa&description=Demo project for Spring Boot&packageName=com.example.accessing-data-jpa&dependencies=data-jpa,h2) 直接点击GENERATE 下载下来,解压并打开项目 首先新建一个Customer类 12...
2021-09-01
获取类中所有的bean
生命中有很多东西,能忘掉的叫过去,忘不掉的叫记忆。一个人的寂寞,有时候,很难隐藏得太久,时间太久了,人就会变得沉默,那时候,有些往日的情怀,就找不回来了。或许,当一段不知疲倦的旅途结束,只有站在终点的人,才会感觉到累。其实我一直都明白,能一直和一人做伴,实属不易。——海子 使用hutool实现 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748package com.ruben.simplescaffold;import cn.hutool.core.bean.BeanUtil;import cn.hutool.core.util.ClassUtil;import cn.hutool.core.util.ReflectUtil;import cn.hutool.core.util.TypeUtil;import com.ruben.simplescaffold.entity.UserDetail;import org.junit.jupiter.api....
2021-10-19
lombok建造者模式支持父类
精力充沛的青春,是不怎么容易灭亡的。——卡罗萨 使用@SuperBuilder注解代替原本的@Builder就可以了 如果对建造者模式不太了解的,可以看我以往写的博客: https://VampireAchao.github.io/2020/11/08/%E5%BB%BA%E9%80%A0%E8%80%85%E6%A8%A1%E5%BC%8F/ 这里做个对比,加之前: 加之后: 可以看到子类开始的建造者模式成功访问到父类属性,不过最终获取到的还是父类 如果想要最终获取到的还是子类,可以在父类也使用@SuperBuilder 不过父类的父类也要有@SuperBuilder
2023-11-05
spring-state-machine持久化
天底下只有一个方法可以影响人,就是提到他们的需要,并且让他们知道怎么去获得。——卡耐基 文档如下: https://docs.spring.io/spring-statemachine/docs/current/reference/#statemachine-examples-datapersist 代码示例如下: https://github.com/spring-projects/spring-statemachine/tree/main/spring-statemachine-samples/persist 状态机持久化主要解决服务端重启后会话丢失问题 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610...
2022-12-13
如何关掉Parsed mapper file日志打印
时间一直走,没有尽头,只有路口。——《摆渡人》 先说结论: 将yml配置里的mybatis-plus配置 1log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 改为 1log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl 在yml配置里新增一条 1234logging: level: root: DEBUG com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean: INFO 完整配置放在最后结尾处 为什么这样配?你是如何找到的? 首先我们搜索Parsed mapper file(因为这个日志大概率是硬编码存在于源码之中的,除非是做了日志本地化,会在配置文件里) 这里排除掉一个纯依赖模块,一个注解模块,挨个到com包搜索,在最后一个extension模块搜到了 那我们将这个类的日志级别设为INFO应该就搞定了,但是没有生效 我们打个断点,看看什么情况,等断点停到...
2020-07-20
mysql使用ORDER BY和GROUP BY
今天写代码时遇到一个需求是这样的: 取表内最新的一条数据,根据用户名分组 本来以为又是那种需求,然后就开始写sql,写完一运行,报错。。。 然后发现GROUP BY必须放在ORDER BY的前面 但这样又会导致不能取最新的一条数据 于是用了一个“子查询”的办法解决 1234567891011121314<select id="cowBeer" resultType="map" parameterType="map"> SELECT [字段] FROM ( SELECT DISTINCT [字段] FROM [表名] AS msg, [表名] AS user WHERE [条件] ORDER BY [创建时间字段] DESC ) r GROUP BY r.[分组条件] ORDER BY r.[创建时间字段] DESC </select>

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog