Files
012-kaopeilian/docs/规划/后端开发拆分策略/配置一致性检查清单.md
111 998211c483 feat: 初始化考培练系统项目
- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
2026-01-24 19:33:28 +08:00

123 lines
5.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 配置一致性检查清单
## 📋 概述
本文档记录了项目中各个组件之间必须保持一致的配置项,确保系统正常运行。
## 🔧 数据库配置一致性
### 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. 认证状态不同步
**症状**:登录成功但路由守卫仍然拦截
**解决**确保前端使用统一的authManagerlocalStorage键名一致
## 📝 更新记录
| 日期 | 更新内容 | 更新人 |
|------|----------|--------|
| 2025-09-20 | 初始创建配置一致性检查清单 | AI Assistant |
| 2025-09-20 | 添加认证授权模块配置项 | AI Assistant |
---
**注意**:每次添加新的配置项或修改现有配置时,都必须更新此文档,确保团队成员了解配置要求。