2026-04-09 15:30:26 +08:00
|
|
|
|
# User Management System (UMS)
|
2026-04-02 03:01:14 +00:00
|
|
|
|
|
2026-04-09 15:30:26 +08:00
|
|
|
|
企业级用户管理系统,支持 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 协议支持 |
|
|
|
|
|
|
|
2026-04-18 21:30:14 +08:00
|
|
|
|
## 安全特性
|
|
|
|
|
|
|
|
|
|
|
|
| 安全修复 | 状态 |
|
|
|
|
|
|
|----------|------|
|
|
|
|
|
|
| LIKE 查询 SQL 注入防护 | ✅ 已修复 |
|
|
|
|
|
|
| 登录失败计数器原子操作 | ✅ 已修复 |
|
|
|
|
|
|
| Refresh Token 黑名单 fail-closed | ✅ 已修复 |
|
|
|
|
|
|
| 验证码 Replay 防护 | ✅ 已修复 |
|
|
|
|
|
|
| CORS 危险配置检测 | ✅ 已修复 |
|
|
|
|
|
|
| UpdateUser IDOR 授权检查 | ✅ 已修复 |
|
|
|
|
|
|
| Login TOTP 设备信任门禁 | ✅ 已修复 |
|
|
|
|
|
|
| 游标分页排序一致性 | ✅ 已修复 |
|
|
|
|
|
|
| 错误信息泄露防护 | ✅ 已修复 |
|
|
|
|
|
|
| OAuth context 正确传播 | ✅ 已修复 |
|
|
|
|
|
|
| 密码修改后 Token 失效(PCE) | ✅ 已修复 |
|
|
|
|
|
|
|
2026-04-09 15:30:26 +08:00
|
|
|
|
## 环境变量
|
|
|
|
|
|
|
|
|
|
|
|
关键配置项(详见 `.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
|
|
|
|
|
|
|
2026-04-18 21:30:14 +08:00
|
|
|
|
# 测试(跳过大规模性能测试)
|
|
|
|
|
|
go test ./internal/... -skip TestScale -count=1
|
2026-04-09 15:30:26 +08:00
|
|
|
|
|
|
|
|
|
|
# 前端构建
|
|
|
|
|
|
cd frontend/admin && npm run build
|
|
|
|
|
|
|
2026-04-18 21:30:14 +08:00
|
|
|
|
# 前端测试
|
|
|
|
|
|
cd frontend/admin && npm test
|
|
|
|
|
|
|
|
|
|
|
|
# 前端 lint
|
|
|
|
|
|
cd frontend/admin && npm run lint
|
|
|
|
|
|
|
2026-04-09 15:30:26 +08:00
|
|
|
|
# Docker 构建
|
|
|
|
|
|
docker build -t ums .
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 部署
|
|
|
|
|
|
|
|
|
|
|
|
- 开发部署:`docs/DEPLOYMENT.md`
|
|
|
|
|
|
- 生产部署:`DEPLOY_GUIDE.md`
|
|
|
|
|
|
- 运行手册:`docs/guides/` 目录下的 7 个 Runbook
|
|
|
|
|
|
|
2026-04-18 21:30:14 +08:00
|
|
|
|
## 测试状态
|
2026-04-09 15:30:26 +08:00
|
|
|
|
|
2026-04-18 21:30:14 +08:00
|
|
|
|
| 测试类型 | 状态 |
|
|
|
|
|
|
|----------|------|
|
|
|
|
|
|
| Go 构建 | ✅ 通过 |
|
|
|
|
|
|
| Go vet | ✅ 通过 |
|
|
|
|
|
|
| Go 测试 | ✅ 通过(37个包) |
|
|
|
|
|
|
| 前端 lint | ✅ 通过 |
|
|
|
|
|
|
| 前端测试 | ✅ 通过(518个) |
|
|
|
|
|
|
| 集成测试 | ✅ 通过 |
|
|
|
|
|
|
| E2E 测试 | ✅ 通过 |
|
|
|
|
|
|
|
|
|
|
|
|
## 项目状态
|
|
|
|
|
|
|
|
|
|
|
|
完整项目状态:`docs/status/REAL_PROJECT_STATUS.md`
|
2026-04-09 15:30:26 +08:00
|
|
|
|
|
2026-04-18 21:30:14 +08:00
|
|
|
|
**2026-04-18 最新状态:** 所有 P0/P1/P2 安全和质量修复已全部完成并验证通过。
|