yml2213 5f63d77dc3 feat(douyu): 和平小店绑定功能(生成绑定二维码/查询绑定信息)
- activity_client: xpd_bind_qr(roleParam 签发 livelink 绑定链接, 微信扫码进小程序绑定)
  + xpd_bind_info(bindInfo 查询绑定状态/角色/平台), gameRole 非 dict 边界防护
- runner/service: 注册 get_xpd_bind_qr / query_xpd_bind_info 任务, 回写
  xpd_game_name / xpd_bind_status
- router: get_xpd_bind_qr 的 url 加入列表接口保留白名单(二维码展示)
- 前端: 和平小店面板新增两个按钮, 二维码列支持 get_xpd_bind_qr 展示/放大
2026-08-06 17:33:11 +08:00
2026-06-24 14:22:29 +08:00
2026-07-25 11:01:57 +08:00
2026-08-06 13:20:12 +08:00
2026-07-25 10:23:19 +08:00
2026-08-02 11:53:36 +08:00
2026-07-25 10:23:19 +08:00
2026-07-25 10:23:19 +08:00

斗鱼批量登录 Web 后台

全自动登录斗鱼账号、获取 Cookie 的 Web 管理平台。

功能特性

  • 极验 v3 滑块自动识别
  • 邮箱验证码自动获取(IMAP
  • 批量登录 + 实时日志推送(WebSocket
  • 代理 & 白名单自动管理
  • 角色权限控制(超级管理员 / 运营 / 客服)

项目结构

douyu_login_py/
├── core/                       # 核心业务逻辑
│   ├── models.py              # Account, ProxyConfig 数据类
│   ├── douyu/                 # 斗鱼登录模块
│   │   ├── login.py           # 登录流程
│   │   ├── crypto.py          # 密码加密
│   │   ├── email_verifier.py  # 邮箱验证码
│   │   ├── proxy.py           # 代理管理
│   │   └── whitelist.py       # 白名单管理
│   └── geetest/               # 极验验证码求解
│       ├── common/            # 公共工具(网络/加密/图像/轨迹)
│       └── v3_slide/          # v3 滑块求解器
├── web/                        # Web 后台
│   ├── backend/               # FastAPI 后端
│   │   ├── main.py            # 入口
│   │   ├── routers/           # API 路由
│   │   ├── migrations/        # Alembic 数据库迁移
│   │   └── services/          # 业务服务
│   └── frontend/              # React + Ant Design 前端
├── utils/                      # 通用工具
│   └── logger.py
├── data/                       # 运行时数据(gitignore
├── deploy.sh                   # 部署/重置工具
└── pyproject.toml

快速开始

# Docker 部署(推荐)
./deploy.sh

访问 http://localhost:8800,默认账号 admin / admin123

常用命令:

./deploy.sh          # 构建并部署
./deploy.sh logs     # 查看实时日志
./deploy.sh stop     # 停止服务
./deploy.sh restart  # 重启服务
./deploy.sh reset    # 重置所有数据(需二次确认)

敏感数据加密

账号密码、邮箱密码、Cookie、代理密钥等敏感字段会以密文形式落盘。生产环境请在 .env 中设置稳定的 APP_ENCRYPTION_KEY,并长期保留;更换该密钥会导致历史密文无法解密。

python -c "import secrets; print(secrets.token_urlsafe(32))"

邮件验证码服务

验证码读取默认使用内置的 Roundcube 服务地址;如部署自己的邮件读取服务,可在 .env 中设置 MAIL_ROUNDCUBE_URL 覆盖。

角色权限

角色 权限
超级管理员 全部功能 + 用户管理 + 权限分配
运营 账号管理 + 批量登录 + 代理配置 + Cookie 导出
客服 仅查看分配给自己的账号(只显示用户名)

登录流程

1. 获取极验参数 → 滑块验证 → 自动识别缺口
2. 获取邮箱验证 code → 发送验证邮件
3. IMAP 获取验证码 → 提交验证码 → 获取 Cookie

技术栈

  • 后端:FastAPI + SQLAlchemy + SQLite + JWT
  • 前端:React + Ant Design + Vite
  • 核心:Python + OpenCV + pycryptodome
  • 迁移:Alembic

许可证

MIT License

部署

Docker 部署

# 一键部署(自动构建镜像 + 启动服务)
./deploy.sh

# 重置所有数据(删除数据库/Cookie/日志,需二次确认)
./deploy.sh reset

部署完成后访问 http://服务器IP:8800,默认账号 admin / admin123

数据持久化: 数据库和日志通过 volume 挂载到宿主机 ./data./logs 目录,容器重建后数据不丢失。

代理配置说明

在 Web 界面"代理配置"页面设置:

  1. API 代理:填入代理 API 地址(支持返回 JSON 格式),系统自动获取并验证代理
  2. 白名单:如代理需要白名单,填入 UID 和 UKEY,系统自动同步出口 IP
  3. 出口 IP 漂移:移动网络出口 IP 频繁漂移时,系统会保留多个出口 IP 在白名单中

代理 API JSON 格式:

// 正常返回
{"code":0,"success":"true","msg":"","data":[{"IP":"1.2.3.4","Port":8080}]}

// 白名单错误
{"code":-1,"msg":"51.请先添加白名单:1.2.3.4","data":""}
S
Description
No description provided
Readme
161 MiB
Languages
Python 74.3%
TypeScript 22.4%
JavaScript 1.9%
Shell 1.1%
Dockerfile 0.2%