- Refactored AdminSummaryData and AdminSummaryResponse classes for better clarity. - Added OAUTH type to SettingsType enum. - Cleaned up imports in webdav.py. - Updated admin router to improve summary data retrieval and response handling. - Enhanced file management routes with better condition handling and user storage updates. - Improved group management routes by optimizing data retrieval. - Refined task management routes for better condition handling. - Updated user management routes to streamline access token retrieval. - Implemented a new captcha verification structure with abstract base class. - Removed deprecated env.md file and replaced with a new structured version. - Introduced a unified OAuth2.0 client base class for GitHub and QQ integrations. - Enhanced password management with improved hashing strategies. - Added detailed comments and documentation throughout the codebase for clarity.
39 lines
997 B
Python
39 lines
997 B
Python
import abc
|
||
import aiohttp
|
||
|
||
from pydantic import BaseModel
|
||
|
||
from .gcaptcha import GCaptcha
|
||
from .turnstile import TurnstileCaptcha
|
||
|
||
|
||
class CaptchaRequestBase(BaseModel):
|
||
"""验证码验证请求"""
|
||
token: str
|
||
"""验证 token"""
|
||
secret: str
|
||
"""验证密钥"""
|
||
|
||
|
||
class CaptchaBase(abc.ABC):
|
||
"""验证码验证器抽象基类"""
|
||
|
||
verify_url: str
|
||
"""验证 API 地址(子类必须定义)"""
|
||
|
||
async def verify_captcha(self, request: CaptchaRequestBase) -> bool:
|
||
"""
|
||
验证 token 是否有效。
|
||
|
||
:return: 如果验证成功返回 True,否则返回 False
|
||
:rtype: bool
|
||
"""
|
||
payload = request.model_dump()
|
||
|
||
async with aiohttp.ClientSession() as session:
|
||
async with session.post(self.verify_url, data=payload) as response:
|
||
if response.status != 200:
|
||
return False
|
||
|
||
result = await response.json()
|
||
return result.get('success', False) |