# User Management System (UMS) 企业级用户管理系统,支持 RBAC 角色权限管理、多因素认证、设备信任和安全审计。 ## 快速开始 ### 前置依赖 - Go 1.21+ - Node.js 18+ - SQLite(默认,无需安装) ### 启动后端 ```bash # 复制环境配置 cp .env.example .env # 编辑 .env 填入必要配置(JWT_SECRET, DEFAULT_ADMIN_PASSWORD 等) # 启动服务 go run ./cmd/server ``` 服务启动后访问 `http://localhost:8080/api/v1/auth/bootstrap` 初始化管理员账号。 ### 启动前端 ```bash cd frontend/admin npm install npm run dev ``` ## 项目结构 ``` . ├── cmd/server/ # 后端入口 ├── internal/ # 后端代码 │ ├── api/handler/ # HTTP 处理器 │ ├── api/middleware/ # 中间件(认证、权限、限流) │ ├── auth/ # 认证服务(JWT/SSO) │ ├── repository/ # 数据访问层 │ ├── service/ # 业务逻辑层 │ └── domain/ # 领域模型 ├── frontend/admin/ # 管理后台前端 ├── configs/ # 配置文件 ├── docs/ # 详细文档 └── data/ # SQLite 数据库目录 ``` ## 核心功能 | 功能 | 说明 | |------|------| | 用户管理 | 注册、登录、CRUD、批量操作 | | RBAC | 角色继承、权限细粒度控制 | | TOTP | Google Authenticator 二次验证 | | 设备信任 | 信任设备免二次验证 | | 登录日志 | 完整操作审计 | | Webhook | 事件通知(user.created/deleted 等)| | SSO | CAS 协议支持 | ## 安全特性 | 安全修复 | 状态 | |----------|------| | LIKE 查询 SQL 注入防护 | ✅ 已修复 | | 登录失败计数器原子操作 | ✅ 已修复 | | Refresh Token 黑名单 fail-closed | ✅ 已修复 | | 验证码 Replay 防护 | ✅ 已修复 | | CORS 危险配置检测 | ✅ 已修复 | | UpdateUser IDOR 授权检查 | ✅ 已修复 | | Login TOTP 设备信任门禁 | ✅ 已修复 | | 游标分页排序一致性 | ✅ 已修复 | | 错误信息泄露防护 | ✅ 已修复 | | OAuth context 正确传播 | ✅ 已修复 | | 密码修改后 Token 失效(PCE) | ✅ 已修复 | ## 环境变量 关键配置项(详见 `.env.example`): | 变量 | 说明 | 必填 | |------|------|------| | `JWT_SECRET` | JWT 签名密钥 | 是 | | `DEFAULT_ADMIN_EMAIL` | 初始管理员邮箱 | 是 | | `DEFAULT_ADMIN_PASSWORD` | 初始管理员密码 | 是 | | `SMTP_*` | 邮件服务配置 | 是(邮件功能)| | `SMS_*` | 短信服务配置 | 否 | ## API 文档 完整 API 规范:`docs/API.md` 认证流程: ``` 1. POST /api/v1/auth/register # 注册用户 2. POST /api/v1/auth/login # 登录获取 Token 3. POST /api/v1/auth/refresh # 刷新 Token ``` ## 开发命令 ```bash # 构建 go build ./cmd/server # 测试(跳过大规模性能测试) go test ./internal/... -skip TestScale -count=1 # 前端构建 cd frontend/admin && npm run build # 前端测试 cd frontend/admin && npm test # 前端 lint cd frontend/admin && npm run lint # Docker 构建 docker build -t ums . ``` ## 部署 - 开发部署:`docs/DEPLOYMENT.md` - 生产部署:`DEPLOY_GUIDE.md` - 运行手册:`docs/guides/` 目录下的 7 个 Runbook ## 测试状态 | 测试类型 | 状态 | |----------|------| | Go 构建 | ✅ 通过 | | Go vet | ✅ 通过 | | Go 测试 | ✅ 通过(37个包) | | 前端 lint | ✅ 通过 | | 前端测试 | ✅ 通过(518个) | | 集成测试 | ✅ 通过 | | E2E 测试 | ✅ 通过 | ## 项目状态 完整项目状态:`docs/status/REAL_PROJECT_STATUS.md` **2026-04-18 最新状态:** 所有 P0/P1/P2 安全和质量修复已全部完成并验证通过。