xianyu-auto-reply/MULTIUSER_SYSTEM_README.md
2025-07-25 17:24:29 +08:00

278 lines
5.5 KiB
Markdown
Raw 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.

# 多用户系统升级指南
## 🎯 功能概述
本次升级将闲鱼自动回复系统从单用户模式升级为多用户模式,实现以下功能:
### ✨ 新增功能
1. **用户注册系统**
- 邮箱注册,支持验证码验证
- 用户名唯一性检查
- 密码安全存储SHA256哈希
2. **数据隔离**
- 每个用户只能看到自己的数据
- Cookie、关键字、备份等完全隔离
- 历史数据自动绑定到admin用户
3. **邮箱验证**
- 集成邮件发送API
- 6位数字验证码
- 10分钟有效期
- 防重复使用
## 🚀 升级步骤
### 1. 备份数据
```bash
# 备份数据库文件
cp xianyu_data.db xianyu_data.db.backup
```
### 2. 运行迁移脚本
```bash
# 迁移历史数据到admin用户
python migrate_to_multiuser.py
# 检查迁移状态
python migrate_to_multiuser.py check
```
### 3. 重启应用
```bash
# 重启应用程序
python Start.py
```
### 4. 验证功能
```bash
# 运行功能测试
python test_multiuser_system.py
```
## 📋 API变更
### 新增接口
| 接口 | 方法 | 说明 |
|------|------|------|
| `/register` | POST | 用户注册 |
| `/send-verification-code` | POST | 发送验证码 |
| `/verify` | GET | 验证token返回用户信息 |
### 修改的接口
所有需要认证的接口现在都支持用户隔离:
- `/cookies` - 只返回当前用户的cookies
- `/cookies/details` - 只返回当前用户的cookie详情
- `/backup/export` - 只导出当前用户的数据
- `/backup/import` - 只导入到当前用户
## 🔐 认证系统
### Token格式变更
```javascript
// 旧格式
SESSION_TOKENS[token] = timestamp
// 新格式
SESSION_TOKENS[token] = {
user_id: 1,
username: 'admin',
timestamp: 1234567890
}
```
### 登录响应变更
```json
{
"success": true,
"token": "abc123...",
"message": "登录成功",
"user_id": 1
}
```
## 🗄️ 数据库变更
### 新增表
1. **users** - 用户表
```sql
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT UNIQUE NOT NULL,
email TEXT UNIQUE NOT NULL,
password_hash TEXT NOT NULL,
is_active BOOLEAN DEFAULT TRUE,
created_at REAL NOT NULL,
updated_at REAL NOT NULL
);
```
2. **email_verifications** - 邮箱验证码表
```sql
CREATE TABLE email_verifications (
id INTEGER PRIMARY KEY AUTOINCREMENT,
email TEXT NOT NULL,
code TEXT NOT NULL,
expires_at REAL NOT NULL,
used BOOLEAN DEFAULT FALSE,
created_at REAL DEFAULT (strftime('%s', 'now'))
);
```
### 修改的表
1. **cookies** - 添加user_id字段
```sql
ALTER TABLE cookies ADD COLUMN user_id INTEGER;
```
## 🎨 前端变更
### 新增页面
1. **注册页面** (`/register.html`)
- 用户名、邮箱、密码输入
- 邮箱验证码发送和验证
- 表单验证和错误提示
- 响应式设计
### 修改的页面
1. **登录页面** (`/login.html`)
- 添加注册链接
- 保持向后兼容
## 📧 邮件系统
### 邮件API配置
```
API地址: https://dy.zhinianboke.com/api/emailSend
参数:
- subject: 邮件主题
- receiveUser: 收件人邮箱
- sendHtml: 邮件内容(HTML格式)
```
### 邮件模板
- 响应式HTML设计
- 品牌化样式
- 验证码突出显示
- 安全提醒信息
## 🔒 安全特性
1. **密码安全**
- SHA256哈希存储
- 不可逆加密
2. **验证码安全**
- 6位随机数字
- 10分钟有效期
- 一次性使用
- 防暴力破解
3. **数据隔离**
- 用户级别完全隔离
- API层面权限检查
- 数据库层面用户绑定
## 🧪 测试指南
### 功能测试
```bash
# 运行完整测试套件
python test_multiuser_system.py
```
### 手动测试步骤
1. **注册测试**
- 访问 `/register.html`
- 输入用户信息
- 验证邮箱验证码
- 完成注册
2. **登录测试**
- 使用新注册的账号登录
- 验证只能看到自己的数据
3. **数据隔离测试**
- 创建多个用户账号
- 分别添加不同的cookies
- 验证数据完全隔离
## 🐛 故障排除
### 常见问题
1. **迁移失败**
```bash
# 检查数据库文件权限
ls -la xianyu_data.db
# 检查迁移状态
python migrate_to_multiuser.py check
```
2. **邮件发送失败**
- 检查网络连接
- 验证邮箱地址格式
- 查看应用日志
3. **用户无法登录**
- 检查用户名和密码
- 确认用户状态为激活
- 查看认证日志
### 回滚方案
如果升级出现问题,可以回滚到单用户模式:
1. 恢复数据库备份
```bash
cp xianyu_data.db.backup xianyu_data.db
```
2. 使用旧版本代码
3. 重启应用
## 📈 性能影响
- **数据库查询**: 增加了user_id过滤条件对性能影响微小
- **内存使用**: CookieManager仍加载所有数据API层面进行过滤
- **响应时间**: 增加了用户验证步骤,延迟增加<10ms
## 🔮 未来规划
1. **用户管理**
- 管理员用户管理界面
- 用户权限控制
- 用户状态管理
2. **高级功能**
- 用户组和权限
- 数据共享机制
- 审计日志
3. **性能优化**
- 用户级别的CookieManager
- 数据库索引优化
- 缓存策略
## 📞 技术支持
如有问题
1. 查看应用日志
2. 运行测试脚本诊断
3. 检查数据库状态
4. 联系技术支持
---
**升级完成后,您的闲鱼自动回复系统将支持多用户使用,每个用户的数据完全隔离,提供更好的安全性和可扩展性!** 🎉