Files
selfrelease 2be0778ec7 feat(backend): T1.1 认证与权限 — 注册/登录/刷新/获取用户
- 后端:auth 路由(register/login/refresh/me)+ JWT + bcrypt 密码哈希
- 依赖注入:get_current_user + require_role 角色权限校验
- 跨数据库兼容:JSONBType(PG 用 JSONB,SQLite 用 JSON)
- 测试:11 个认证测试 + 4 个健康检查测试 = 15 passed
2026-07-18 21:54:06 +08:00

47 lines
1.0 KiB
Python

"""认证相关 Pydantic schema。"""
from pydantic import BaseModel, EmailStr, Field
class LoginRequest(BaseModel):
"""登录请求。"""
email: EmailStr
password: str = Field(..., min_length=6, max_length=128)
class RegisterRequest(BaseModel):
"""注册请求。"""
email: EmailStr
password: str = Field(..., min_length=6, max_length=128)
name: str = Field(..., min_length=1, max_length=100)
tenant_name: str = Field(..., min_length=1, max_length=200)
role: str = Field(default="founder", description="角色:gp/partner/post_invest_lead/investor/founder/admin")
class TokenResponse(BaseModel):
"""Token 响应。"""
access_token: str
refresh_token: str
token_type: str = "bearer"
expires_in: int = Field(description="access token 有效期(秒)")
class RefreshRequest(BaseModel):
"""刷新 token 请求。"""
refresh_token: str
class UserInfo(BaseModel):
"""用户信息。"""
id: str
email: str
name: str
role: str
tenant_id: str
is_active: bool