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)