# 鉴权中台服务 **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` | > 该默认账号仅在空数据库首次启动时创建。如果密码已被修改,请使用修改后的密码;生产环境请在首次登录后立即修改默认密码。