oauth 2.0 服务端可以参考文章: Spring Security oauth2.0 服务端
oauth 2.0 单点登录可以参考文章: Spring Security 单点登录
问题描述:通过单点成功A系统后,30分钟内,B系统单点登录成功;然而30分钟后,登录B系统,需要重新输入账号密码
Security 是如何实现单点登录的呢,其核心实现方式就是通过 session

分析到这里,我们可以知道,单点状态持续时间等于 session 的有效时间,而 SpringBoot 项目默认的 session 有效期是 30 分钟
自定义 session 有效期:修改 application 配置
server:
servlet:
session:
timeout: PT60M
SpringBoot 项目默认会把 session 存储在内存里,这样 session 过多时会影响服务性能,甚至会导致内存异常。那么优化方案很直接,就是把 session 存储在别的地方,通常建议可以存于 Redis
pom 文件添加依赖
<dependency>
<groupId>org.springframework.sessiongroupId>
<artifactId>spring-session-data-redisartifactId>
dependency>
登录成功后,可以在 Redis 看到 session,且存活时间为 1800 秒
