Files
meijiaka-zy/python-api/app/schemas/auth.py
T
小鱼开发 51521fc0dd feat(payment): 微信支付 APIv2 + 积分充值 + SMS 短信 + 双 Token 认证
- 微信支付从 APIv3 降级为 APIv2(MD5/XML)
- 积分系统:充值下单、微信回调、消费冻结/结算/退款
- SMS B2M 短信验证码服务
- 双 Token 认证(Access 30min + Refresh 30days)
- SSE 单设备踢人
- 用户设备管理、积分账户模型
- Alembic 迁移脚本
2026-05-07 18:43:02 +08:00

49 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
认证相关 Schema
===============
"""
from pydantic import BaseModel, Field
from app.schemas.user import UserInfo
class MobileLoginRequest(BaseModel):
"""手机号验证码登录请求"""
mobile: str = Field(..., description="手机号", min_length=11, max_length=20)
code: str = Field(..., description="短信验证码", min_length=4, max_length=10)
device_id: str = Field(..., description="设备唯一标识")
device_name: str | None = Field(None, description="设备名称")
os_info: str | None = Field(None, description="操作系统信息")
app_version: str | None = Field(None, description="应用版本号")
class SendSmsCodeRequest(BaseModel):
"""发送短信验证码请求"""
mobile: str = Field(..., description="手机号", min_length=11, max_length=20)
class RefreshTokenRequest(BaseModel):
"""刷新 Token 请求"""
refresh_token: str = Field(..., description="Refresh Token")
class TokenResponse(BaseModel):
"""Token 响应(登录/刷新共用)"""
access_token: str = Field(..., description="Access Token30 分钟有效)")
refresh_token: str = Field(..., description="Refresh Token30 天有效)")
user: UserInfo = Field(..., description="用户信息")
class TokenPayload(BaseModel):
"""Token 载荷"""
sub: str | None = Field(None, description="用户 ID")
type: str | None = Field(None, description="Token 类型:access / refresh")
jti: str | None = Field(None, description="JWT 唯一标识(Refresh Token 用)")
exp: int | None = Field(None, description="过期时间戳")