Python 官方文档:入门教程 => 点击学习
目录依赖登录退出登录前后端分离今天分享的是 Spring Boot 整合 Sa-Token 实现登录认证。 依赖 首先,我们需要添加依赖: 关
今天分享的是 Spring Boot
整合 Sa-Token
实现登录认证。
首先,我们需要添加依赖:
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>1.28.0</version>
</dependency>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-WEB</artifactId>
</dependency>
<dependency>
<groupId>com.fengwenyi</groupId>
<artifactId>JavaLib</artifactId>
<version>2.1.5</version>
</dependency>
<dependency>
<groupId>com.fengwenyi</groupId>
<artifactId>api-result</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
</dependencies>
public class UserData {
private static final Map<String, User> users = Map.of(
"u1", new User("01", "u1", "123456", List.of("ROLE_USER")),
"a2", new User("02", "a2", "123456", List.of("ROLE_ADMIN", "ROLE_USER"))
);
public static class User {
public String uid;
public String username;
public String passWord;
public List<String> roles;
public User(String uid, String username, String password, List<String> roles) {
this.uid = uid;
this.username = username;
this.password = password;
this.roles = roles;
}
}
public static User queryByUsername(String username) {
return users.get(username);
}
public static List<String> queryRolesByUid(String uid) {
for (Map.Entry<String, User> entry : users.entrySet()) {
if (uid.equals(entry.getValue().uid)) {
return entry.getValue().roles;
}
}
return null;
}
}
@RestController
@RequestMapping("/auth")
public class AuthController {
@PostMapping("/login")
public ResponseTemplate<LoginResponseVo> login(@RequestBody @Validated LoginRequestVo requestVo) {
String username = requestVo.getUsername();
String password = requestVo.getPassword();
UserData.User user = UserData.queryByUsername(username);
if (Objects.isNull(user)) {
return ResponseTemplate.fail("用户名不正确");
}
if (!user.password.equals(password)) {
return ResponseTemplate.fail("密码不正确");
}
StpUtil.login(user.uid);
LoginResponseVo responseVo = new LoginResponseVo()
.setToken(StpUtil.getTokenValue())
;
return ResponseTemplate.success(responseVo);
}
}
关键代码
StpUtil.login(user.uid);
LoginResponseVo responseVo = new LoginResponseVo()
.setToken(StpUtil.getTokenValue())
;
请求:
POST localhost:8080/auth/login
{
"username": "u1",
"password": "123456"
}
响应:
{
"code": 0,
"message": "Success",
"success": true,
"body": {
"token": "f2f9a82f-bc6a-460a-877e-9d3e4c8867de"
}
}
@RestController
@RequestMapping("/auth")
public class AuthController {
@PostMapping("/loGout")
public ResponseTemplate<Void> logout() {
StpUtil.logout();
return ResponseTemplate.success();
}
}
header 添加
satoken
= f2f9a82f-bc6a-460a-877e-9d3e4c8867de
到此这篇关于SpringBoot整合Sa-Token实现登录认证的示例代码的文章就介绍到这了,更多相关SpringBoot Sa-Token登录认证内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: SpringBoot整合Sa-Token实现登录认证的示例代码
本文链接: https://www.lsjlt.com/news/162918.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0