35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
from typing import Any
|
|
|
|
from pydantic import BaseModel, ConfigDict, Field
|
|
|
|
from app.core.base_schema import JWTOutSchema
|
|
|
|
|
|
class CaptchaOutSchema(BaseModel):
|
|
"""验证码响应模型"""
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
enable: bool = Field(default=True, description="是否启用验证码")
|
|
key: str = Field(default="", description="验证码唯一标识(未启用时为空字符串)")
|
|
img_base: str = Field(default="", description="Base64编码的验证码图片(滑块模式为空字符串)")
|
|
|
|
|
|
class LoginOutSchema(JWTOutSchema):
|
|
"""登录响应"""
|
|
|
|
user_info: dict[str, Any] = Field(default_factory=dict, description="用户信息")
|
|
|
|
|
|
class SliderCompleteSchema(BaseModel):
|
|
"""滑块验证完成请求"""
|
|
|
|
captcha_key: str = Field(..., min_length=1, description="验证码唯一标识")
|
|
|
|
|
|
class SliderCompleteOutSchema(BaseModel):
|
|
"""滑块验证完成响应"""
|
|
|
|
captcha_key: str = Field(..., description="验证码唯一标识")
|
|
verified: bool = Field(default=True, description="是否验证通过")
|