SpringBoot整合Sa-Token实现登录认证的示例代码
更新时间:2022年01月19日 09:42:00 作者:冯文议
本文主要介绍了SpringBoot整合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登录认证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- 基于SpringBoot整合oauth2实现token认证
- springboot+jwt实现token登陆权限认证的实现
- SpringBoot和Redis实现Token权限认证的实例讲解
- SpringBoot整合token实现登录认证的示例代码
- SpringBoot使用Sa-Token实现登录认证
- SpringBoot使用Sa-Token实现权限认证
- 在SpringBoot中使用jwt实现token身份认证的实例代码
- Springboot微服务分布式框架Rouyi Cloud权限认证(登录流程之token解析)
- Springboot 如何使用 SaToken 进行登录认证、权限管理及路由规则接口拦截
- springBoot整合jwt实现token令牌认证的示例代码
最新评论