前面一些小节中,已经实现了用户、角色、菜单三个界面的相关功能,这个小节来学习一下,如何集成sa-token权限认证框架。
微信合集文章:SpringBoot3.x项目开发笔记
源代码:https://gitcode.com/knowledge-base/springboot3-study/tree/boot3-chapter25。
1.1、引入依赖
Java中实现权限认证的框架有好几个,例如:Shiro、Spring Security、sa-token等,其中Shiro和Spring Security两个权限认证框架,需要一定的时间才能够掌握,并且学习起来有一定的难度。
然而,sa-token这个框架,使用起来非常简单,几乎只要几行代码,就可以实现登录、认证、鉴权等功能。所以,这个小节来学习一下,SpringBoot3项目中如何集成sa-token框架。
<!– https://mvnrepository.com/artifact/cn.dev33/sa-token-spring-boot3-starter –>
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot3-starter</artifactId>
<version>1.44.0</version>
</dependency>
只需要在项目中,引入对应SpringBoot版本的依赖即可。
1.2、添加sa-token配置
依赖引入完成之后,接着,就可以在配置文件里面,添加一些sa-token的相关配置信息,如下所示:
############## Sa-Token 配置 ##############
sa-token:
# token 名称(同时也是 cookie 名称)
token-name: satoken
# token 有效期(单位:秒) 默认30天,-1 代表永久有效
timeout: 2592000
# token 最低活跃频率(单位:秒),如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结
active-timeout: -1
# 是否允许同一账号多地同时登录 (为 true 时允许一起登录, 为 false 时新登录挤掉旧登录)
is-concurrent: true
# 在多人登录同一账号时,是否共用一个 token (为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token)
is-share: false
# token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
token-style: random-32
# 是否输出操作日志
is-log: true
到这一步,其实已经集成好了sa-token这个框架了,后续,就可以在项目中,使用sa-token提供的相关方法,实现登录、注销、权限认证等功能了。
1.3、案例代码
下面来编写一个案例代码,来看看sa-token实现登录、注销是多么的简单,代码如下:
package com.boot3.demo.auth.login.controller;
import cn.dev33.satoken.stp.StpUtil;
import com.boot3.demo.common.response.ResponseResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* [登录认证控制器]
*
* @author : Mr.小朱同学
* @date 2025/12/11 19:58
*/
@RestController
@RequestMapping("/base/auth/")
public class LoginController {
@GetMapping("/login")
public ResponseResult<Void> login(String username) {
// 调用登录方法,即可实现登录功能
StpUtil.login(username);
return ResponseResult.ok("登录成功");
}
@GetMapping("/logout")
public ResponseResult<Void> logout() {
// 调用注销方法,即可实现注销功能
StpUtil.logout();
return ResponseResult.ok("退出成功");
}
@GetMapping("/status")
public ResponseResult<Boolean> status() {
// 调用isLogin()方法,即可判断当前会话是否已登录
boolean isLogin = StpUtil.isLogin();
return ResponseResult.ok(isLogin);
}
}
启动项目,浏览器依次访问登录、获取登录状态、注销、获取登录状态的接口,查看返回结果。
- http://localhost:6250/base/auth/login?username=xiaozhu。
- http://localhost:6250/base/auth/status。
- http://localhost:6250/base/auth/logout。
- http://localhost:6250/base/auth/status。

从上面的案例代码中,是不是感觉实现登录、注销的功能非常简单,就写了一句代码,这就是sa-token框架的强大之处,目前sa-token在很多项目中都有使用,实际开发中,sa-token也是最常见的权限认证框架。
到此,SpringBoot3项目中就集成了sa-token框架了,下个小节来实现用户登录认证相关的功能。




