SpringBoot整合Sa-Token實現(xiàn)登錄認證的示例代碼
今天分享的是 Spring Boot
整合 Sa-Token
實現(xiàn)登錄認證。
依賴
首先,我們需要添加依賴:
- 關(guān)鍵依賴:
<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>
登錄
- 構(gòu)造用戶數(shù)據(jù)
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); } }
關(guān)鍵代碼
StpUtil.login(user.uid); LoginResponseVo responseVo = new LoginResponseVo() .setToken(StpUtil.getTokenValue()) ;
- 測試
請求:
POST localhost:8080/auth/login { "username": "u1", "password": "123456" }
響應(yīng):
{ "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
到此這篇關(guān)于SpringBoot整合Sa-Token實現(xiàn)登錄認證的示例代碼的文章就介紹到這了,更多相關(guān)SpringBoot Sa-Token登錄認證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 基于SpringBoot整合oauth2實現(xiàn)token認證
- springboot+jwt實現(xiàn)token登陸權(quán)限認證的實現(xiàn)
- SpringBoot和Redis實現(xiàn)Token權(quán)限認證的實例講解
- SpringBoot整合token實現(xiàn)登錄認證的示例代碼
- SpringBoot使用Sa-Token實現(xiàn)登錄認證
- SpringBoot使用Sa-Token實現(xiàn)權(quán)限認證
- 在SpringBoot中使用jwt實現(xiàn)token身份認證的實例代碼
- Springboot微服務(wù)分布式框架Rouyi Cloud權(quán)限認證(登錄流程之token解析)
- Springboot 如何使用 SaToken 進行登錄認證、權(quán)限管理及路由規(guī)則接口攔截
- springBoot整合jwt實現(xiàn)token令牌認證的示例代碼
相關(guān)文章
如何使用stream從List對象中獲取某列數(shù)據(jù)
這篇文章主要介紹了如何使用stream從List對象中獲取某列數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12關(guān)于request.getRequestDispatcher().forward()的妙用及DispatcherType
這篇文章主要介紹了關(guān)于request.getRequestDispatcher().forward()的妙用及DispatcherType對Filter配置的影響,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01Spring Boot應(yīng)用監(jiān)控的實戰(zhàn)教程
Spring Boot 提供運行時的應(yīng)用監(jiān)控和管理功能,下面這篇文章主要給大家介紹了關(guān)于Spring Boot應(yīng)用監(jiān)控的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05SpringBoot 調(diào)度任務(wù)及常用任務(wù)表達式
這篇文章主要介紹了SpringBoot 調(diào)度任務(wù)及常用任務(wù)表達式,需要的朋友可以參考下2017-12-12