README_AUTH.md 3.4 KB

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中 - 支持离线模式(使用本地存储的用户信息)