# 配置一致性检查清单

## 📋 概述
本文档记录了项目中各个组件之间必须保持一致的配置项，确保系统正常运行。

## 🔧 数据库配置一致性

### MySQL连接配置
| 组件 | 配置文件 | 配置项 | 当前值 |
|------|----------|--------|--------|
| Docker Compose | `../../docker-compose.yml` | `MYSQL_ROOT_PASSWORD` | `root` |
| 后端默认配置 | `../../kaopeilian-backend/app/config/settings.py` | `DATABASE_URL` | `mysql+aiomysql://root:root@localhost:3306/kaopeilian` |
| 启动脚本 | `../../kaopeilian-backend/start_mysql.py` | `DATABASE_URL` 环境变量 | `mysql+aiomysql://root:root@localhost:3306/kaopeilian` |

**⚠️ 重要**：所有数据库连接字符串中的用户名、密码、主机、端口必须完全一致。

### Redis连接配置
| 组件 | 配置文件 | 配置项 | 当前值 |
|------|----------|--------|--------|
| Docker Compose | `../../docker-compose.yml` | Redis端口 | `6379` |
| 后端配置 | `../../kaopeilian-backend/app/config/settings.py` | `REDIS_URL` | `redis://localhost:6379/0` |

## 🌐 网络配置一致性

### 端口配置
| 服务 | 组件 | 配置位置 | 端口 |
|------|------|----------|------|
| 前端开发服务器 | Vue3 + Vite | `../../kaopeilian-frontend/vite.config.ts` | `3001` |
| 后端API服务器 | FastAPI | `../../kaopeilian-backend/start_mysql.py` | `8000` |
| MySQL数据库 | Docker | `../../docker-compose.yml` | `3306` |
| Redis缓存 | Docker | `../../docker-compose.yml` | `6379` |

### CORS配置
| 组件 | 配置文件 | 配置项 | 允许的源 |
|------|----------|--------|----------|
| 后端 | `../../kaopeilian-backend/app/config/settings.py` | `BACKEND_CORS_ORIGINS` | `["http://localhost:3000", "http://localhost:3001", "http://localhost:5173"]` |

**⚠️ 重要**：前端开发服务器的端口必须在后端CORS配置中明确允许。

## 🔐 认证配置一致性

### JWT配置
| 组件 | 配置文件 | 配置项 | 当前值 |
|------|----------|--------|--------|
| 后端 | `../../kaopeilian-backend/app/config/settings.py` | `SECRET_KEY` | 环境变量或默认值 |
| 后端 | `../../kaopeilian-backend/app/config/settings.py` | `ALGORITHM` | `HS256` |
| 后端 | `../../kaopeilian-backend/app/config/settings.py` | `ACCESS_TOKEN_EXPIRE_MINUTES` | `30` |

### 认证存储键名
| 组件 | 存储位置 | 键名 | 用途 |
|------|----------|------|------|
| 前端 | localStorage | `access_token` | 访问令牌 |
| 前端 | localStorage | `refresh_token` | 刷新令牌 |
| 前端 | localStorage | `current_user` | 当前用户信息 |

**⚠️ 重要**：前端的authManager和所有组件必须使用相同的localStorage键名。

## 📡 API配置一致性

### 请求格式
| API端点 | 前端发送格式 | 后端接收格式 | Content-Type |
|---------|-------------|-------------|--------------|
| `/api/v1/auth/login` | JSON | Pydantic模型 | `application/json` |
| `/api/v1/auth/register` | JSON | Pydantic模型 | `application/json` |

### API基础路径
| 组件 | 配置文件 | 配置项 | 当前值 |
|------|----------|--------|--------|
| 前端 | `../../kaopeilian-frontend/src/api/config.ts` | `baseURL` | `http://localhost:8000` |
| 后端 | `../../kaopeilian-backend/app/config/settings.py` | `API_V1_STR` | `/api/v1` |

## 🏗️ 环境配置一致性

### 开发环境
| 组件 | 配置文件 | 环境标识 | 当前值 |
|------|----------|----------|--------|
| 前端 | `../../kaopeilian-frontend/package.json` | `NODE_ENV` | `development` |
| 后端 | `../../kaopeilian-backend/app/config/settings.py` | `ENVIRONMENT` | `development` |

## ✅ 配置检查脚本

### 自动检查命令
```bash
# 在项目根目录执行
cd ../../
./check-config.sh
```

### 手动检查清单
- [ ] Docker服务正常启动 (`docker-compose ps`)
- [ ] 数据库连接成功 (后端日志无连接错误)
- [ ] 前端可以访问后端API (无CORS错误)
- [ ] 认证流程完整工作 (登录成功并跳转)
- [ ] 权限控制正常 (不同角色访问不同页面)

## 🚨 常见配置不一致问题

### 1. 数据库密码不匹配
**症状**：后端启动时报"Access denied"错误
**解决**：检查`docker-compose.yml`的`MYSQL_ROOT_PASSWORD`与`settings.py`的`DATABASE_URL`密码是否一致

### 2. CORS配置缺失
**症状**：前端控制台报CORS错误
**解决**：确保前端运行端口已添加到后端`BACKEND_CORS_ORIGINS`列表

### 3. API格式不匹配
**症状**：前端请求返回400或422错误
**解决**：检查前端发送的Content-Type和数据格式是否与后端Pydantic模型匹配

### 4. 认证状态不同步
**症状**：登录成功但路由守卫仍然拦截
**解决**：确保前端使用统一的authManager，localStorage键名一致

## 📝 更新记录

| 日期 | 更新内容 | 更新人 |
|------|----------|--------|
| 2025-09-20 | 初始创建配置一致性检查清单 | AI Assistant |
| 2025-09-20 | 添加认证授权模块配置项 | AI Assistant |

---

**注意**：每次添加新的配置项或修改现有配置时，都必须更新此文档，确保团队成员了解配置要求。