From c3e56a954d201a42a087339c3f7ddaf10bfe7847 Mon Sep 17 00:00:00 2001 From: shihao <3127647737@qq.com> Date: Sun, 30 Nov 2025 19:41:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9Eppx/weibo/kuaishou?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLAUDE.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index c1a25d2..d3e1fb1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -130,16 +130,26 @@ redis-server.exe redis.windows.conf - `ParseLog` / `DailyParseStat` - 解析日志和统计 - `HealthCheckConfig` / `HealthCheckLog` - 健康检查配置和日志 -### 限流机制 +### 限流机制(utils/limiter.py) -基于用户分组的每日限流: -- 游客(group_id=1):5次/天 +`RateLimiter` 类实现基于用户分组的每日限流: +- `check_limit(user_id, ip_address)` - 检查是否超过限制,返回 `{allowed, current, limit, remaining}` +- `increment_count(user_id, ip_address, success)` - 增加解析计数 + +默认限流配置: +- 游客:可通过 `site_configs` 表的 `guest_daily_limit` 配置(默认5次/天) - 普通用户(group_id=2):10次/天 - VIP用户(group_id=3):50次/天 - SVIP用户(group_id=4):200次/天 限流数据存储在 `daily_parse_stats` 表,按 user_id 或 ip_address 统计。 +### 管理员认证(utils/admin_auth.py) + +- `@admin_required` - 装饰器,保护管理后台路由(API返回401 JSON,页面重定向到登录) +- `verify_2fa(admin, code)` - 验证TOTP 2FA代码 +- `generate_2fa_secret()` / `get_2fa_qrcode_url()` - 2FA设置辅助函数 + ## 应用初始化流程(app.py) 1. 创建Flask应用并加载配置(config.py)