欢迎光临
我们一直在努力

《第25节》SpringBoot3之集成sa-token权限认证框架

前面一些小节中,已经实现了用户、角色、菜单三个界面的相关功能,这个小节来学习一下,如何集成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框架了,下个小节来实现用户登录认证相关的功能。

赞(0)
未经允许不得转载:171主机测评 » 《第25节》SpringBoot3之集成sa-token权限认证框架
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址