mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-22 13:05:18 +00:00
- 清理冗余代码与配置: - 删除废弃的 mock 适配器、通用 mock 模块与示例API - 移除冗余的 ts 类型文件与 patch 目录 - 简化 tsconfig 组件路径配置 - 新增功能与优化: - 新增全局水印组件与水印配置 - 接入微信小程序登录/手机号登录 - 新增系统参数配置 store 与国际化支持 - 新增 markdown 渲染插件与样式配置 - 优化 pinia 持久化逻辑修复 - 新增微信小程序 access_token 缓存配置 - 修复登录趋势数据结构定义 - 优化全局请求防抖重定向逻辑 - 页面与路由优化: - 补全引导页首次启动逻辑 - 统一页面底部安全区适配 - 更新页面路由类型声明 - 代码质量优化: - 移除无用 console.log 调试代码 - 修复全局弹窗重复重登录问题 - 优化 mp-html 组件配置
70 lines
2.4 KiB
Python
70 lines
2.4 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(..., min_length=1, 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="是否验证通过")
|
||
|
||
|
||
# =================================================== #
|
||
# *************** 微信小程序登录 Schema *************** #
|
||
# =================================================== #
|
||
|
||
|
||
class WxLoginSchema(BaseModel):
|
||
"""微信小程序登录请求(code2Session)"""
|
||
|
||
code: str = Field(..., min_length=1, description="uni.login 返回的临时登录凭证 code")
|
||
nickname: str | None = Field(default=None, max_length=64, description="用户昵称(来自 getUserProfile,可选)")
|
||
avatar: str | None = Field(default=None, max_length=512, description="头像 URL(可选)")
|
||
|
||
|
||
class WxPhoneLoginSchema(BaseModel):
|
||
"""微信小程序手机号登录请求"""
|
||
|
||
code: str = Field(..., min_length=1, description="getPhoneNumber 回调返回的动态令牌 code")
|
||
|
||
|
||
class WxQrCodeSchema(BaseModel):
|
||
"""小程序码生成请求"""
|
||
|
||
scene: str = Field(..., max_length=32, description="场景参数(如 invite=xxx,最大32字符)")
|
||
page: str | None = Field(default=None, max_length=128, description="小程序页面路径(如 pages/index/index),为空则默认主页")
|
||
width: int = Field(default=430, ge=280, le=1280, description="小程序码宽度(px)")
|
||
|
||
|
||
class WxQrCodeOutSchema(BaseModel):
|
||
"""小程序码生成响应"""
|
||
|
||
model_config = ConfigDict(from_attributes=True)
|
||
|
||
url: str = Field(..., description="小程序码图片 URL(已上传 OSS / 本地文件路径)")
|