dingdanquanliucheng/backend/app/schemas/auth.py
taiyi feaf4298ca feat: 小程序微信手机号一键登录,替代账号密码输入
- 后端新增 /api/auth/wechat-login 接口,用手机号自动匹配系统用户
- 登录时自动绑定 open_id,为微信订阅消息通知做好准备
- 小程序登录页替换为微信手机号授权按钮,保留密码登录为备用入口
- 新增 get_user_by_mobile 按手机号查询用户方法

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-06 17:41:11 +08:00

65 lines
1.4 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.

"""
认证模块请求/响应模型
定义登录认证相关的请求体和响应体数据模型,供 auth 路由使用。
"""
from pydantic import BaseModel
class LoginRequest(BaseModel):
"""登录请求体,用于用户登录认证。被 POST /api/auth/login 路由使用。"""
username: str
"""用户名"""
password: str
"""密码"""
role_type: str | None = None
"""角色类型,区分不同登录角色(如 admin / sales为空时由后端自动识别"""
class WechatLoginRequest(BaseModel):
"""微信手机号登录请求体,用于微信一键登录。"""
code: str
"""wx.login() 获取的临时登录凭证"""
phone_code: str
"""wx.getPhoneNumber 返回的授权 code新版 API用于换取手机号"""
class UserProfile(BaseModel):
"""用户信息响应体,包含用户基本信息、角色权限和菜单数据。用于登录成功后返回用户画像。"""
user_id: int
"""用户 ID"""
username: str
"""用户名"""
real_name: str
"""真实姓名"""
mobile: str
"""手机号"""
role_id: int
"""角色 ID"""
role_name: str
"""角色名称"""
role_code: str
"""角色编码"""
token: str | None = None
"""JWT 令牌,仅登录时返回"""
menus: list[dict] = []
"""该角色关联的菜单列表"""
permissions: list[str] = []
"""该角色的权限编码列表"""