68 lines
1.6 KiB
Markdown
68 lines
1.6 KiB
Markdown
|
|
# 注册失败问题 - 已解决 ✅
|
|||
|
|
|
|||
|
|
## 问题原因
|
|||
|
|
|
|||
|
|
注册失败有两个原因:
|
|||
|
|
|
|||
|
|
1. **数据库不存在** - 数据库 `agent_db` 不存在
|
|||
|
|
2. **密码哈希错误** - passlib的bcrypt在初始化时遇到密码长度限制问题
|
|||
|
|
|
|||
|
|
## 解决方案
|
|||
|
|
|
|||
|
|
### 1. 创建数据库 ✅
|
|||
|
|
|
|||
|
|
已成功创建数据库和所有表结构:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 创建数据库
|
|||
|
|
docker-compose -f docker-compose.dev.yml exec backend python /app/scripts/create_database.py
|
|||
|
|
|
|||
|
|
# 创建表结构
|
|||
|
|
docker-compose -f docker-compose.dev.yml exec backend python -c "from app.core.database import init_db; init_db(); print('✅ 数据库表创建成功')"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 修复密码哈希 ✅
|
|||
|
|
|
|||
|
|
将密码加密从 `passlib` 改为直接使用 `bcrypt` 库,避免初始化时的bug检测问题:
|
|||
|
|
|
|||
|
|
- 使用 `bcrypt.hashpw()` 和 `bcrypt.checkpw()` 直接处理密码
|
|||
|
|
- 正确处理72字节长度限制
|
|||
|
|
- 移除了对 `passlib` 的依赖
|
|||
|
|
|
|||
|
|
## 验证
|
|||
|
|
|
|||
|
|
✅ 数据库创建成功
|
|||
|
|
✅ 表结构创建成功
|
|||
|
|
✅ 注册功能测试通过
|
|||
|
|
|
|||
|
|
### 测试结果
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -X POST http://localhost:8037/api/v1/auth/register \
|
|||
|
|
-H "Content-Type: application/json" \
|
|||
|
|
-d '{"username":"demo","email":"demo@test.com","password":"demo123"}'
|
|||
|
|
|
|||
|
|
# 返回: {"id":"...","username":"demo","email":"demo@test.com","role":"user"}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 已创建的表
|
|||
|
|
|
|||
|
|
- ✅ `users` - 用户表
|
|||
|
|
- ✅ `workflows` - 工作流表
|
|||
|
|
- ✅ `agents` - 智能体表
|
|||
|
|
- ✅ `executions` - 执行记录表
|
|||
|
|
- ✅ `model_configs` - 模型配置表
|
|||
|
|
|
|||
|
|
## 下一步
|
|||
|
|
|
|||
|
|
现在可以:
|
|||
|
|
1. ✅ 注册新用户
|
|||
|
|
2. ✅ 登录系统
|
|||
|
|
3. ✅ 创建工作流
|
|||
|
|
4. ✅ 使用可视化编辑器
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**状态**: ✅ 已解决
|
|||
|
|
**时间**: 2024年
|