优化token刷新

优化token刷新
This commit is contained in:
zhinianboke 2025-08-13 18:34:34 +08:00 committed by GitHub
commit 88e78d8093
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 313 additions and 10 deletions

View File

@ -73,19 +73,121 @@ tests/
*.md
docs/
# Docker相关
Dockerfile*
docker-compose*.yml
.dockerignore
# Docker相关保留必要的构建文件
.dockerignore.bak
docker-compose.override.yml
# 配置文件(运行时挂载)
# global_config.yml
# 其他
# 环境变量文件
.env
.env.local
.env.*.local
.env.*
!.env.example
*.local.yml
*.dev.yml
*.test.yml
config.*.yml
!global_config.yml
# 前端相关
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
yarn.lock
# 数据目录(运行时挂载)
data/
backups/
logs/
realtime.log
# 上传文件
static/uploads/*
!static/uploads/.gitkeep
!static/uploads/images/
static/uploads/images/*
!static/uploads/images/.gitkeep
# Excel和数据文件
*.xlsx
*.xls
*.csv
keywords_*.xlsx
export_*.csv
export_*.json
export_*.xlsx
# 压缩文件
*.zip
*.tar.gz
*.rar
*.7z
# 备份文件
*.bak
*.backup
*.old
# 密钥和证书
*.key
*.pem
*.crt
*.cert
*.p12
*.pfx
ssl/
secrets/
credentials/
# 运行时文件
*.pid
*.sock
*.lock
*.port
# 性能分析文件
*.prof
*.profile
*.pstats
# 缓存文件
.cache/
cache/
*.cache
# 浏览器相关
.playwright/
playwright-report/
test-results/
# 示例和演示文件
example_*.py
*_example.py
demo_*.py
*_demo.py
# AI模型文件
*.model
*.weights
*.h5
*.pb
# 大文件
*.iso
*.dmg
*.img
# 监控和审计
monitoring/
*.access.log
*.error.log
*.audit.log
# 本地开发文件
local/
.local/
debug.log
*.debug

100
.gitignore vendored
View File

@ -284,4 +284,102 @@ build/
# 大文件
*.iso
*.dmg
*.img
*.img
# ==================== 项目特定新增文件类型 ====================
# 测试和示例文件
test_*.py
*_test.py
example_*.py
*_example.py
demo_*.py
*_demo.py
# 文档文件除了README.md
*.md
!README.md
!CHANGELOG.md
!CONTRIBUTING.md
!LICENSE.md
# 临时配置文件
*.local.yml
*.dev.yml
*.test.yml
config.*.yml
!global_config.yml
# 运行时生成的文件
*.pid
*.lock
*.sock
*.port
# 性能和调试文件
*.profile
*.pstats
*.trace
# 编译和构建产物
*.whl
*.egg
*.tar.gz
build/
dist/
# 开发工具配置
.editorconfig
.flake8
.pylintrc
pyproject.toml
setup.cfg
tox.ini
# 容器相关
.dockerignore
docker-compose.*.yml
!docker-compose.yml
!docker-compose-cn.yml
# 安全相关
*.secret
*.token
*.auth
secrets/
credentials/
# 监控和日志
*.access.log
*.error.log
*.audit.log
monitoring/
# 第三方服务配置
.env
.env.*
!.env.example
# 数据导出文件
export_*.csv
export_*.json
export_*.xlsx
dump_*.sql
# 临时下载文件
downloads/
temp_downloads/
# 浏览器相关
.playwright/
playwright-report/
test-results/
# 系统服务文件
*.service
*.timer
systemd/
# 备份和归档
archive/
old/
deprecated/

View File

@ -429,6 +429,103 @@ python Start.py
- **`requirements.txt`** - Python依赖包列表精简版本无冗余依赖按功能分类组织包含详细说明
- **`.gitignore`** - Git忽略文件配置完整覆盖Python、Docker、前端等开发文件
- **`.dockerignore`** - Docker构建忽略文件优化构建上下文大小和构建速度
- **`Dockerfile-cn`** - 国内优化版Docker镜像构建文件使用国内镜像源加速构建
- **`docker-compose-cn.yml`** - 国内优化版Docker Compose配置文件
## 🏗️ 详细技术架构
### 📊 系统架构图
```
┌─────────────────────────────────────────────────────────────────┐
│ Web前端界面 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 用户管理 │ │ 账号管理 │ │ 关键词管理 │ │ 商品管理 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 日志管理 │ │ 数据管理 │ │ 商品搜索 │ │ 系统监控 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ FastAPI Web服务器 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 用户认证 │ │ 权限管理 │ │ API接口 │ │ 文件上传 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 邮箱验证 │ │ 图形验证码 │ │ 实时日志 │ │ 健康检查 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ CookieManager 多账号管理器 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 任务调度 │ │ 状态监控 │ │ 线程管理 │ │ 异常处理 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ XianyuLive 实例集群 (多实例并行) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 账号A实例 │ │ 账号B实例 │ │ 账号C实例 │ │ ... │ │
│ │ WebSocket │ │ WebSocket │ │ WebSocket │ │ │ │
│ │ 消息处理 │ │ 消息处理 │ │ 消息处理 │ │ │ │
│ │ 自动回复 │ │ 自动回复 │ │ 自动回复 │ │ │ │
│ │ 自动发货 │ │ 自动发货 │ │ 自动发货 │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 辅助服务模块 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ AI回复引擎 │ │ 图片处理 │ │ 商品搜索 │ │ 订单处理 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 日志收集 │ │ 文件管理 │ │ 通知推送 │ │ 数据备份 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ SQLite数据库 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 用户数据 │ │ 账号数据 │ │ 关键词数据 │ │ 商品数据 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 发货数据 │ │ 系统设置 │ │ 日志数据 │ │ 统计数据 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
### 🔄 数据流程图
```
用户消息 → WebSocket接收 → 消息解析 → 关键词匹配 → 回复生成 → 消息发送
│ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼
商品识别 连接管理 内容过滤 AI处理 模板渲染 发送确认
│ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼
数据存储 状态监控 安全检查 上下文 变量替换 日志记录
```
### 🔐 安全架构
```
┌─────────────────────────────────────────────────────────────────┐
│ 安全防护层 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ JWT认证 │ │ 权限控制 │ │ 数据加密 │ │ 访问控制 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 图形验证码 │ │ 邮箱验证 │ │ 会话管理 │ │ 操作日志 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
## ⚙️ 配置说明

View File

@ -191,6 +191,8 @@ class XianyuLive:
# 启动定期清理过期暂停记录的任务
self.cleanup_task = None
def is_auto_confirm_enabled(self) -> bool:
"""检查当前账号是否启用自动确认发货"""
try:
@ -722,6 +724,7 @@ class XianyuLive:
new_token = res_json['data']['accessToken']
self.current_token = new_token
self.last_token_refresh_time = time.time()
logger.info(f"{self.cookie_id}】Token刷新成功")
return new_token

View File

@ -119,6 +119,7 @@ class DBManager:
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
)
''')
# 创建keywords表
cursor.execute('''
@ -1085,6 +1086,7 @@ class DBManager:
"INSERT OR REPLACE INTO cookies (id, value, user_id) VALUES (?, ?, ?)",
(cookie_id, cookie_value, user_id)
)
self.conn.commit()
logger.info(f"Cookie保存成功: {cookie_id} (用户ID: {user_id})")
@ -1100,6 +1102,7 @@ class DBManager:
logger.error(f"Cookie保存失败: {e}")
self.conn.rollback()
return False
def delete_cookie(self, cookie_id: str) -> bool:
"""从数据库删除Cookie及其关键字"""

View File

@ -58,8 +58,8 @@ MANUAL_MODE:
timeout: 3600
toggle_keywords: []
MESSAGE_EXPIRE_TIME: 300000
TOKEN_REFRESH_INTERVAL: 18000 # 从3600秒(1小时)增加到18000秒(5小时)
TOKEN_RETRY_INTERVAL: 1800 # 从300秒(5分钟)增加到1800秒(30分钟)
TOKEN_REFRESH_INTERVAL: 72000 # 从3600秒(1小时)增加到18000秒(20小时)
TOKEN_RETRY_INTERVAL: 7200 # 从300秒(5分钟)增加到7200秒(2小时)
WEBSOCKET_HEADERS:
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: zh-CN,zh;q=0.9