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



相关推荐
2021-03-04
springboot文件大小限制
繁枝容易纷纷落,嫩蕊商量细细开。——唐•杜甫 springboot文件大小限制 首先是可以在配置文件中进行配置 1234567spring: servlet: multipart: # 单个文件 max-file-size: 1GB # 一次请求 max-request-size: 1GB 还有,我们也可以在代码中进行配置 123456789@Beanpublic MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); // 单个数据大小 factory.setMaxFileSize(DataSize.of(1, DataUnit.GIGABYTES)); // 总上传数据大小 factory.setMaxRequestSize(DataSize.of(1, DataUnit.GIGABYTES)); return...
2020-09-28
java多次调用,最后一次调用后才执行
追求使你充实,成功和失败都是伴奏。——史铁生 前段时间写了java防抖,不过之前写的都是在一定时间内只执行一次,超过这个时间,防抖又失效了,假设我现在有这样一个需求: 在一定的间隔内多次调用一个函数,只有最后一次才生效 例如,我设定的间隔为1秒,那么只要我在1秒内触发了第二次,那么就重新计时 废话不多说,贴代码 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859package com.ruben;import com.ruben.utils.TimeUtil;import java.util.Timer;import java.util.TimerTask;import java.util.logging.Handler;import java.util.logging.LogRecord;/** * @ClassName: TimeIsExpensiveDemo * @Date: 2020/9/28 21:3...
2025-12-25
conductor
今天所做之事勿候明天,自己所做之事勿候他人。——歌德 Conductor:源自 Netflix 的可扩展工作流编排引擎当你的系统从“一个应用”演进为“几十上百个微服务 + 一堆事件”,你就会需要一个可靠、可观察、可伸缩的编排引擎,把这些复杂的流程组织起来。Conductor 正是为此而生——它最初由 Netflix 构建,用于管理分布式、异步的微服务与事件驱动工作流;如今由 Orkes 团队在社区中持续维护与发展。 仓库主页:conductor-oss/conductor 官方站点:Conductor OSS README 永久链接(信息来源):README.md@aa7de92 默认分支:main 项目描述(仓库 Description):“Conductor is an event driven orchestration platform providing durable and highly resilient execution engine for your applications” 许可协议:Apache 2.0 进一步了解 Netflix ...
2023-10-29
r2dbc分页条件查询
假如人只能自己单独生活,只会考虑自己,他的痛苦将是难以承受的。——帕斯卡 代码很简单: 1userRepository.findBy(Example.of(new User()), x -> x.page(PageRequest.of(0, 1))) 这里repository需要继承org.springframework.data.repository.query.ReactiveQueryByExampleExecutor 例如: 12345678import org.springframework.data.r2dbc.repository.R2dbcRepository;import org.springframework.data.repository.query.ReactiveQueryByExampleExecutor;import org.springframework.stereotype.Repository;import reactor.core.publisher.Flux;@Repositorypublic interface UserRep...
2022-01-09
对null值友好的Collectors.groupingBy
一个人行走的范围,就是他的世界。——北岛 我们在使用Collectors.groupingBy时会遇到这种情况: 1Map<String, List<User>> map = Arrays.asList(new User(), null).stream().collect(Collectors.groupingBy(User::getName)); 为了避免这种情况,于是我自己实现了一个: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546@SafeVarargs@SuppressWarnings("unchecked")public static <T, K, D, A, M extends Map<K, D>> M listGroupBy(List<T> list, Function<T, K> sFunction, Collector<? super T,...
2023-10-17
srs实现合流
伸出你的手去援助别人,而不是伸出你的脚去绊倒他们。——戴尔·卡耐基 文档: https://ossrs.net/lts/zh-cn/docs/v5/doc/webrtc#room-to-live 合流需要打开配置文件的配置,主要是rtc的 1234567891011121314151617181920212223vhost __defaultVhost__ { http_hooks { enabled on; on_publish http://host.docker.internal:8001/im-signaling-service/srs_callback/on_publish; on_unpublish http://host.docker.internal:8001/im-signaling-service/srs_callback/on_unPublish; on_play http://host.doc...

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