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