32 lines
807 B
Python
32 lines
807 B
Python
"""Authentication schemas."""
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class LoginRequest(BaseModel):
|
|
"""Login request schema."""
|
|
|
|
username: str = Field(..., description="Username")
|
|
password: str = Field(..., description="Password")
|
|
|
|
model_config = {"json_schema_extra": {
|
|
"example": {
|
|
"username": "testuser",
|
|
"password": "SecurePassword123!"
|
|
}
|
|
}}
|
|
|
|
|
|
class TokenResponse(BaseModel):
|
|
"""JWT token response schema."""
|
|
|
|
access_token: str = Field(..., description="JWT access token")
|
|
token_type: str = Field(default="bearer", description="Token type")
|
|
|
|
model_config = {"json_schema_extra": {
|
|
"example": {
|
|
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
|
|
"token_type": "bearer"
|
|
}
|
|
}}
|