# 鉴权中台服务
**Repository Path**: xiaoning2003/auth-center
## Basic Information
- **Project Name**: 鉴权中台服务
- **Description**: 基于Java的鉴权中台服务
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-08-17
- **Last Updated**: 2026-09-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 鉴权中台服务
## 这个项目是干嘛的
当多个项目各自实现登录、用户、角色和权限时,通常会重复造轮子,规则不一致且维护成本很高。Auth Center 将这些能力集中为一个统一的认证与权限管理平台,让多个业务项目复用同一套鉴权能力。
> **解决重复造轮子:** 业务项目不再分别开发认证鉴权模块,只需接入 Auth Center,即可统一完成登录认证、角色权限校验和应用级隔离。
> **支持多服务、跨语言接入:** 不论业务服务使用 Java、Python、Node.js、Go 或其他能够发起 HTTP 请求的语言,都可以调用 Auth Center 完成登录认证和权限校验。
- 管理员可以在管理台维护应用、用户、角色、权限、API Key 和审计日志。
- 每个业务服务使用自己的 API Key 调用 Auth Center,实现多应用、多服务的统一鉴权。
- Java Spring Boot 服务可直接使用 `Auth Center Spring Boot Starter` 快速接入;其他语言服务直接调用 HTTP API 即可。
## 项目架构
```text
管理员
↓
Vue 3 管理台(http://127.0.0.1:5173)
↓
Auth Center 后端(http://127.0.0.1:8080)
├─ MySQL:保存用户、角色、权限、应用等长期数据
└─ Redis:保存会话、验证码、缓存等短期数据
第三方业务 Spring Boot 服务
↓
Auth Center Spring Boot Starter
↓
Auth Center 后端
```
## 业务服务接入:Auth Center Spring Boot Starter
### 1. 安装 Starter
```powershell
cd auth-center-spring-boot
mvn clean install
```
### 2. 在业务服务中添加依赖
```xml
io.github.haishishushu
auth-center-spring-boot
0.1.0-SNAPSHOT
```
### 3. 配置 Auth Center 地址和业务应用 API Key
```yaml
auth-center-service:
server-url: http://127.0.0.1:8080
api-key: ${AUTH_CENTER_API_KEY}
```
> `api-key` 必须使用当前业务应用自己的 API Key,不能使用管理台 API Key。建议通过环境变量或密钥管理服务注入。
### 4. 在 Controller 接口上添加鉴权注解
```java
// 只要求用户已登录
@AccessControl
@GetMapping("/orders/mine")
public List mine() {
}
// 要求指定权限
@AccessControl(permission = "order:delete")
@DeleteMapping("/orders/{id}")
public void delete(@PathVariable Long id) {
}
// 公共接口:无需登录,也不校验权限
@AccessControl(mode = AccessMode.PUBLIC)
@GetMapping("/products")
public List products() {
}
```
> 未写 `@AccessControl` 的接口默认不会被 Starter 拦截,等同于公共接口。对于明确需要匿名访问的接口,建议显式写 `@AccessControl(mode = AccessMode.PUBLIC)`,便于阅读和审查。
## 管理台登录账号
管理台地址:`http://127.0.0.1:5173`
| 用户名 | 密码 |
| --- | --- |
| `admin` | `admin` |
> 该默认账号仅在空数据库首次启动时创建。如果密码已被修改,请使用修改后的密码;生产环境请在首次登录后立即修改默认密码。