Some checks failed
continuous-integration/drone/push Build is failing
- 后端:钉钉 OAuth 认证服务 - 后端:系统设置 API(钉钉配置) - 前端:登录页钉钉扫码入口 - 前端:系统设置页面 - 数据库迁移脚本
43 lines
844 B
Python
43 lines
844 B
Python
"""
|
|
认证相关 Schema
|
|
"""
|
|
from pydantic import EmailStr, Field
|
|
|
|
from .base import BaseSchema
|
|
|
|
|
|
class LoginRequest(BaseSchema):
|
|
"""登录请求"""
|
|
|
|
username: str = Field(..., description="用户名/邮箱/手机号")
|
|
password: str = Field(..., min_length=6)
|
|
|
|
|
|
class Token(BaseSchema):
|
|
"""令牌响应"""
|
|
|
|
access_token: str
|
|
refresh_token: str
|
|
token_type: str = "bearer"
|
|
|
|
|
|
class TokenPayload(BaseSchema):
|
|
"""令牌载荷"""
|
|
|
|
sub: str # 用户ID
|
|
type: str # access 或 refresh
|
|
exp: int # 过期时间
|
|
|
|
|
|
class RefreshTokenRequest(BaseSchema):
|
|
"""刷新令牌请求"""
|
|
|
|
refresh_token: str
|
|
|
|
|
|
class DingtalkLoginRequest(BaseSchema):
|
|
"""钉钉免密登录请求"""
|
|
|
|
code: str = Field(..., description="钉钉免登授权码")
|
|
tenant_id: int = Field(default=1, description="租户ID")
|