WebUI 后端类型注解补全,使用全 typing 库类型注解

This commit is contained in:
DrSmoothl
2026-03-16 13:09:12 +08:00
parent df088205dd
commit e7ac064a80
47 changed files with 572 additions and 365 deletions

View File

@@ -1,19 +1,19 @@
from .security import TokenManager, get_token_manager
from .rate_limiter import (
RateLimiter,
get_rate_limiter,
check_auth_rate_limit,
check_api_rate_limit,
)
from .auth import (
COOKIE_NAME,
COOKIE_MAX_AGE,
COOKIE_NAME,
clear_auth_cookie,
get_current_token,
is_token_valid,
set_auth_cookie,
clear_auth_cookie,
verify_auth_token_from_cookie_or_header,
)
from .rate_limiter import (
RateLimiter,
check_api_rate_limit,
check_auth_rate_limit,
get_rate_limiter,
)
from .security import TokenManager, get_token_manager
__all__ = [
"TokenManager",

View File

@@ -3,8 +3,10 @@
from typing import Optional
from fastapi import Cookie, HTTPException, Request, Response
from src.common.logger import get_logger
from src.config.config import global_config
from .security import get_token_manager
logger = get_logger("webui.auth")
@@ -54,6 +56,7 @@ def get_current_token(
if not is_token_valid(maibot_session):
raise HTTPException(status_code=401, detail="Token 无效或已过期")
assert maibot_session is not None
return maibot_session

View File

@@ -5,8 +5,10 @@ WebUI 请求频率限制模块
import time
from collections import defaultdict
from typing import Dict, Tuple, Optional
from fastapi import Request, HTTPException
from typing import Dict, List, Optional, Tuple
from fastapi import HTTPException, Request
from src.common.logger import get_logger
logger = get_logger("webui.rate_limiter")
@@ -21,7 +23,7 @@ class RateLimiter:
def __init__(self):
# 存储格式: {key: [(timestamp, count), ...]}
self._requests: Dict[str, list] = defaultdict(list)
self._requests: Dict[str, List] = defaultdict(list)
# 被封禁的 IP: {ip: unblock_timestamp}
self._blocked: Dict[str, float] = {}

View File

@@ -6,7 +6,7 @@ WebUI Token 管理模块
import json
import secrets
from pathlib import Path
from typing import Optional
from typing import Dict, Optional, Tuple
from src.common.logger import get_logger
@@ -52,7 +52,7 @@ class TokenManager:
logger.error(f"读取 WebUI 配置文件失败: {e},正在重新创建")
self._create_new_token()
def _load_config(self) -> dict:
def _load_config(self) -> Dict:
"""加载配置文件"""
try:
with open(self.config_path, "r", encoding="utf-8") as f:
@@ -61,7 +61,7 @@ class TokenManager:
logger.error(f"加载 WebUI 配置失败: {e}")
return {}
def _save_config(self, config: dict):
def _save_config(self, config: Dict):
"""保存配置文件"""
try:
with open(self.config_path, "w", encoding="utf-8") as f:
@@ -127,7 +127,7 @@ class TokenManager:
return is_valid
def update_token(self, new_token: str) -> tuple[bool, str]:
def update_token(self, new_token: str) -> Tuple[bool, str]:
"""
更新 token
@@ -208,7 +208,7 @@ class TokenManager:
except ValueError:
return False
def _validate_custom_token(self, token: str) -> tuple[bool, str]:
def _validate_custom_token(self, token: str) -> Tuple[bool, str]:
"""
验证自定义 token 格式