# AI换脸换装系统 - 前端认证系统 ## 概述 本前端系统已完全弃用Base44的用户登录验证功能,改为使用传统的用户名密码登录系统,与后端API紧密集成。 ## 认证系统架构 ### 1. API模块 (`src/api/auth.js`) - 封装所有与后端认证相关的API调用 - 使用axios进行HTTP请求 - 统一的错误处理和响应格式 - 自动处理token存储和清理 ### 2. 认证上下文 (`src/contexts/AuthContext.jsx`) - 使用React Context API进行全局状态管理 - 提供登录、登出、用户信息管理等功能 - 自动处理token存储和清理 - 与后端API紧密集成 ### 3. 登录页面 (`src/pages/LoginPage.jsx`) - 使用Ant Design表单组件构建专业登录界面 - 通过AuthContext调用后端登录API - 表单验证和错误处理 - 登录成功后自动跳转到仪表盘 ### 4. 注册页面 (`src/pages/RegisterPage.jsx`) - 使用Ant Design表单组件构建专业注册界面 - 通过AuthContext调用后端注册API - 表单验证和错误处理 - 注册成功后跳转到登录页面 ## 主要功能 ### 用户登录 - 用户名密码验证 - 表单验证(用户名至少3个字符,密码至少6个字符) - 登录状态持久化 - 自动跳转到仪表盘 ### 用户注册 - 用户名密码注册 - 密码确认验证 - 用户名格式验证(只能包含字母、数字和下划线) - 注册成功后跳转到登录页面 ### 用户登出 - 清除本地存储的认证信息 - 调用后端登出API - 重定向到登录页面 ### 路由保护 - 未认证用户自动重定向到登录页面 - 已认证用户访问登录/注册页面时重定向到仪表盘 - 加载状态显示 ## API接口 ### 登录接口 - **URL**: `POST /auth/login` - **参数**: `{ username, password }` - **响应**: `{ success: true, token, user }` ### 注册接口 - **URL**: `POST /auth/register` - **参数**: `{ username, password, is_admin }` - **响应**: `{ success: true }` ### 登出接口 - **URL**: `POST /auth/logout` - **参数**: `{ token }` - **响应**: `{ success: true }` ## 技术栈 - **React 18**: 前端框架 - **React Router**: 路由管理 - **Ant Design**: UI组件库 - **Axios**: HTTP客户端 - **Context API**: 状态管理 ## 文件结构 ``` src/ ├── api/ │ └── auth.js # 认证相关API ├── contexts/ │ └── AuthContext.jsx # 认证上下文 ├── pages/ │ ├── LoginPage.jsx # 登录页面 │ ├── RegisterPage.jsx # 注册页面 │ └── index.jsx # 路由配置 ├── components/ │ ├── auth/ │ │ └── UserProfile.jsx # 用户资料组件 │ └── ui/ │ └── loading.jsx # 加载组件 └── App.jsx # 应用入口 ``` ## 使用说明 1. **启动开发服务器**: ```bash npm run dev ``` 2. **访问应用**: - 首次访问会自动重定向到登录页面 - 注册新用户或使用现有账户登录 - 登录成功后进入仪表盘 3. **环境变量**: - 设置 `VITE_API_BASE_URL` 环境变量指向后端API地址 - 默认为 `http://localhost:8000` ## 安全特性 - Token自动管理 - 401错误自动重定向到登录页面 - 密码加密传输 - 表单验证和错误处理 - 用户会话管理 ## 注意事项 - 确保后端API服务正在运行 - 检查网络连接和API地址配置 - 用户信息存储在localStorage中 - 支持离线模式(使用本地存储的用户信息)