Files
weibo_signin/README.md
2026-03-09 14:05:00 +08:00

188 lines
4.3 KiB
Markdown
Raw Permalink 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.
# Weibo-HotSign - 微博超话智能签到系统
基于开发文档实现的分布式微博超话智能签到系统具备多账户管理、高稳定性反爬虫、Web可视化管理等核心功能。
## 🏗️ 项目架构
本项目采用微服务架构,包含以下核心服务:
- **认证服务** (auth_service) - 用户注册、登录、JWT认证
- **API网关** (api_service) - 统一API入口和路由
- **任务调度** (task_scheduler) - 基于Celery Beat的定时任务
- **签到执行** (signin_executor) - 核心签到业务逻辑
- **浏览器自动化** (browser_automation_service) - 处理复杂JS加密
- **通知中心** (notification_hub) - 多渠道通知分发
- **前端应用** (frontend) - React可视化界面
## 🚀 快速启动
### 环境要求
- Docker & Docker Compose
- Python 3.11+
- Node.js 18+
### 启动步骤
1. **克隆项目**
```bash
cd d:/code/weibo
```
2. **启动所有服务**
```bash
docker-compose up -d
```
3. **查看服务状态**
```bash
docker-compose ps
```
4. **访问服务**
- 前端界面: http://localhost:3000
- API文档: http://localhost:8000/docs
- 认证服务: http://localhost:8001/docs
- 健康检查: http://localhost:8000/health
## 📋 已实现功能
### ✅ 认证服务 (auth_service)
- [x] 用户注册 (`POST /auth/register`)
- [x] 用户登录 (`POST /auth/login`)
- [x] JWT Token生成和验证
- [x] 密码强度验证和bcrypt哈希
- [x] CORS跨域支持
- [x] 数据库连接管理
- [x] 完整的错误处理和日志记录
### ✅ 任务调度服务 (task_scheduler)
- [x] Celery Beat定时任务调度
- [x] Cron表达式解析和动态任务加载
- [x] 任务队列管理 (Redis)
- [x] 任务重试和错误处理
- [x] 调用签到执行服务
### ✅ 签到执行服务 (signin_executor)
- [x] 微博超话签到核心逻辑
- [x] 动态IP代理池集成 (模拟)
- [x] 浏览器指纹模拟 (模拟)
- [x] Cookie管理和验证 (模拟)
- [x] 完整的签到工作流和状态管理
- [x] 反爬虫保护机制 (随机延迟)
### ✅ 基础设施
- [x] Docker容器化配置
- [x] PostgreSQL数据库初始化
- [x] Redis缓存配置
- [x] Nginx反向代理配置
- [x] 微服务网络通信
### 🔄 待实现功能
#### API网关服务 (api_service)
- 请求路由和负载均衡
- API组合和聚合
- 速率限制和熔断
#### 浏览器自动化服务 (browser_automation_service)
- Playwright无头浏览器
- JS加密参数逆向
- 网络请求拦截和提取
#### 前端React应用 (frontend)
- 用户登录注册界面
- 账号管理面板
- 任务配置界面
- 签到日志查看
- 实时状态监控
#### 通知中心服务 (notification_hub)
- 多渠道通知分发 (Server酱, Email等)
## 🛠️ 技术栈
### 后端
- **Web框架**: FastAPI (Python)
- **数据库**: PostgreSQL + SQLAlchemy
- **缓存**: Redis
- **任务队列**: Celery + Redis
- **认证**: JWT + bcrypt
- **浏览器自动化**: Playwright
### 前端
- **框架**: React 18 + Vite
- **状态管理**: Zustand
- **UI库**: Ant Design
- **HTTP客户端**: Axios
### 基础设施
- **容器化**: Docker + Docker Compose
- **反向代理**: Nginx
- **监控**: Prometheus + Grafana
- **日志**: ELK Stack
## 📊 数据库设计
系统包含以下核心数据表:
- `users` - 用户信息
- `accounts` - 微博账号管理
- `tasks` - 签到任务配置
- `signin_logs` - 签到历史记录
详细表结构见 `init-db.sql`
## 🔧 配置说明
### 环境变量
主要配置通过环境变量设置:
```bash
# 数据库
DATABASE_URL=postgresql+asyncpg://user:pass@postgres:5432/dbname
REDIS_URL=redis://redis:6379
# JWT
JWT_SECRET_KEY=your-super-secret-jwt-key
JWT_EXPIRATION_HOURS=24
# 应用
DEBUG=true
HOST=0.0.0.0
PORT=8000
```
## 📝 API规范
遵循RESTful设计规范
- **协议**: HTTPS
- **数据格式**: JSON
- **认证**: Bearer Token (JWT)
- **版本控制**: URL路径 (`/api/v1/`)
- **通用响应结构**:
```json
{
"success": true,
"data": {...},
"message": "Operation successful",
"error": null
}
```
## 🤝 贡献指南
1. Fork项目
2. 创建特性分支
3. 提交代码变更
4. 推送到分支
5. 创建Pull Request
## 📄 许可证
MIT License
## 🙏 致谢
感谢开发文档提供的详细技术规范和架构指导,本实现严格遵循文档中的各项技术要求。