| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- # app/schemas/token.py
- from pydantic import BaseModel, Field
- from typing import Optional
- from datetime import datetime
-
- class Token(BaseModel):
- """令牌响应模型"""
- access_token: str
- token_type: str = "bearer"
- expires_in: Optional[int] = None
- refresh_token: Optional[str] = None
-
- class TokenResponse(Token):
- """带用户信息的令牌响应"""
- user: dict
-
- class TokenData(BaseModel):
- """令牌数据模型"""
- username: Optional[str] = None
- user_id: Optional[int] = None
- email: Optional[str] = None
- exp: Optional[int] = None
- iat: Optional[int] = None
-
- class TokenPayload(BaseModel):
- """令牌载荷"""
- sub: Optional[str] = None
- exp: Optional[datetime] = None
-
- class RefreshTokenRequest(BaseModel):
- """刷新令牌请求"""
- refresh_token: str
-
- class TokenCreate(BaseModel):
- """创建令牌请求"""
- user_id: int
- username: str
- email: str
-
- # 导出所有模型
- __all__ = [
- "Token",
- "TokenResponse",
- "TokenData",
- "TokenPayload",
- "RefreshTokenRequest",
- "TokenCreate"
- ]
|