# sa-token-quickstart **Repository Path**: Yoona520/sa-token-quickstart ## Basic Information - **Project Name**: sa-token-quickstart - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-24 - **Last Updated**: 2026-03-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Sa-Token 快速入门 > 一行代码搞定登录 + 权限,后端开发效率直接翻倍 [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.2.0-brightgreen)](https://spring.io/projects/spring-boot) [![Sa-Token](https://img.shields.io/badge/Sa--Token-1.37.0-orange)](https://sa-token.cc) [![JDK](https://img.shields.io/badge/JDK-17+-blue)](https://www.oracle.com/java/) ## 项目简介 本项目是《告别 Spring Security!Sa-Token 一行代码搞定登录 + 权限》的配套代码,演示如何用 **Sa-Token** 快速实现登录认证和权限控制。 对比 Spring Security: | 功能 | Spring Security | Sa-Token | |------|-----------------|----------| | 登录 | 配置复杂 | `StpUtil.login(id)` 一行搞定 | | 权限注解 | 需配置 | 开箱即用 | | 学习曲线 | 陡峭 | 平缓 | | 代码量 | 多 | 少 80% | ## 快速开始 ### 1. 克隆项目 ```bash git clone https://github.com/helloworldtang/sa-token-quickstart.git cd sa-token-quickstart ``` ### 2. 运行项目 ```bash mvn spring-boot:run ``` 启动成功后访问: - 📖 **API 文档**: http://localhost:8080/doc.html - 🔐 **登录接口**: POST http://localhost:8080/auth/login ### 3. 测试接口 #### 方式一:使用 Swagger UI(推荐) 访问 http://localhost:8080/doc.html,可视化测试所有接口。 #### 方式二:使用 curl **登录** ```bash # admin 用户(拥有所有权限) curl -X POST "http://localhost:8080/auth/login?username=admin&password=123456" # user 用户(只有 user:list 权限) curl -X POST "http://localhost:8080/auth/login?username=user&password=123456" ``` 返回: ```json { "code": 200, "msg": "登录成功", "data": { "userId": "10001", "token": "xxx-xxx-xxx" } } ``` **获取用户信息(需要登录)** ```bash curl "http://localhost:8080/user/profile?satoken=你的token" ``` **管理员接口(需要 admin 角色)** ```bash curl "http://localhost:8080/user/admin/data?satoken=你的token" ``` **用户列表(需要 user:list 权限)** ```bash curl "http://localhost:8080/user/list?satoken=你的token" ``` ## 核心代码 ### 登录 - 一行代码搞定 ```java @PostMapping("/login") public SaResult login(String username, String password) { // 校验用户名密码... // 🔥 核心:一行代码完成登录! StpUtil.login(userId); return SaResult.ok("登录成功") .setData(StpUtil.getTokenValue()); } ``` ### 权限控制 - 注解搞定 ```java // 需要登录 @SaCheckLogin @GetMapping("/profile") public SaResult profile() { return SaResult.ok("当前用户ID: " + StpUtil.getLoginId()); } // 需要 admin 角色 @SaCheckRole("admin") @GetMapping("/admin/data") public SaResult adminData() { return SaResult.ok("管理员专属数据"); } // 需要 user:list 权限 @SaCheckPermission("user:list") @GetMapping("/list") public SaResult list() { return SaResult.ok().setData(userList); } ``` ## 模拟用户数据 | 用户名 | 密码 | 用户ID | 角色 | 权限 | |--------|------|--------|------|------| | admin | 123456 | 10001 | admin | user:list, user:add, user:delete | | user | 123456 | 10002 | user | user:list | ## 项目结构 ``` sa-token-quickstart/ ├── src/main/java/com/tangtang/satoken/ │ ├── SaTokenQuickStartApplication.java # 启动类 │ ├── config/ │ │ ├── SaTokenConfig.java # Sa-Token 配置 │ │ ├── StpInterfaceImpl.java # 权限数据接口 │ │ └── SwaggerConfig.java # Swagger 配置 │ ├── controller/ │ │ ├── AuthController.java # 认证接口 │ │ └── UserController.java # 用户接口 │ └── exception/ │ └── GlobalExceptionHandler.java # 全局异常处理 ├── pom.xml └── README.md ``` ## 技术栈 - Spring Boot 3.2.0 - Sa-Token 1.37.0 - Knife4j (Swagger UI) - JDK 17+ ## 功能特性 ✅ 登录认证 - 一行代码搞定 ✅ 权限校验 - 注解方式 ✅ 角色校验 - 注解方式 ✅ 全局异常处理 - 统一返回格式 ✅ Swagger 文档 - 可视化接口测试 ## 学习资源 - [Sa-Token 官方文档](https://sa-token.cc) ## 许可证 MIT License --- **如果本项目对你有帮助,欢迎 Star ⭐**