Skip to content

TOKEN 管理

作者:唐亚峰 | battcn
字数统计:449 字

导入核心包

本 SDK 基于 sa-token提供的最新SDK sa-token-spring-boot3-starter:1.39.0 集成封装,简化开发者使用

即便默认没提供 OAuth2.0 授权协议,但是采用 sa-token 后可以轻松开启

xml
<dependency>
    <groupId>com.wemirr.framework</groupId>
    <artifactId>oauth2-spring-boot-starter</artifactId>
</dependency>

Token 更换

当下主流开源项目默认采用 JWT 作为令牌生成器,但是对于无状态的令牌来说加上 Redis 做状态管理违背了 JWT 的设计初衷,对Redis Key 也不够友好,那么就可以考虑使用自定义的 TOKEN 策略了,默认实现了以 UUID 生成方式

开启配置

注意

当你开启自定义 TOKEN 后,需要将 oauth2_registered_client.token_settings 内容修改一下

yaml
############## Sa-Token 配置 (文档: https://sa-token.cc) ##############
sa-token:
  # token 名称(同时也是 cookie 名称)
  #  token-name: wp-token
  token-name: Authorization
  token-prefix: Bearer
  # token 有效期(单位:秒) 默认30天,-1 代表永久有效
  timeout: 86400
  # token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
  active-timeout: -1
  # 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
  is-concurrent: true
  # 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)
  is-share: true
  # token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
  token-style: uuid
  # 是否输出操作日志
  is-log: true

服务端配置使用

添加注解 @EnableOAuth2Server 标记当前项目为鉴权服务端

客户端配置使用

添加注解 @EnableOAuth2Client 标记当前项目为资源客户端