refactor: 将访问令牌功能迁移至模块系统

- 新增 management_tokens 模块定义,支持通过环境变量控制可用性
- 从静态路由中移除 management-tokens,改由模块动态注册
- 前端路由添加模块激活检查,未激活时重定向到仪表盘
- 认证服务添加模块激活检查,未激活时禁止令牌认证
- 导航菜单中移除访问令牌入口(保留直接 URL 访问)
- 修复 alembic 迁移脚本格式和错误处理
This commit is contained in:
fawney19
2026-02-05 16:32:27 +08:00
parent 440721368f
commit 5be7813ab8
8 changed files with 210 additions and 77 deletions

View File

@@ -614,10 +614,17 @@ class AuthService:
RateLimitException: 超过速率限制时抛出(用于返回 429
"""
from src.core.exceptions import RateLimitException
from src.core.modules import get_module_registry
from src.models.database import AuditEventType, ManagementToken
from src.services.rate_limit.ip_limiter import IPRateLimiter
from src.services.system.audit import AuditService
# 检查访问令牌模块是否激活
module_registry = get_module_registry()
if not module_registry.is_active("management_tokens", db):
logger.warning("Management Token 认证失败 - 访问令牌模块未激活")
return None
# 速率限制检查(防止暴力破解)
allowed, remaining, ttl = await IPRateLimiter.check_limit(
client_ip,