first
This commit is contained in:
42
backend/app/schemas/auth.py
Normal file
42
backend/app/schemas/auth.py
Normal file
@@ -0,0 +1,42 @@
|
||||
"""
|
||||
Tool_OCR - Authentication Schemas
|
||||
"""
|
||||
|
||||
from typing import Optional
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class LoginRequest(BaseModel):
|
||||
"""Login request schema"""
|
||||
username: str = Field(..., min_length=3, max_length=50, description="Username")
|
||||
password: str = Field(..., min_length=6, description="Password")
|
||||
|
||||
class Config:
|
||||
json_schema_extra = {
|
||||
"example": {
|
||||
"username": "admin",
|
||||
"password": "password123"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class Token(BaseModel):
|
||||
"""JWT token response schema"""
|
||||
access_token: str = Field(..., description="JWT access token")
|
||||
token_type: str = Field(default="bearer", description="Token type")
|
||||
expires_in: int = Field(..., description="Token expiration time in seconds")
|
||||
|
||||
class Config:
|
||||
json_schema_extra = {
|
||||
"example": {
|
||||
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
|
||||
"token_type": "bearer",
|
||||
"expires_in": 3600
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class TokenData(BaseModel):
|
||||
"""Token payload data"""
|
||||
user_id: Optional[int] = None
|
||||
username: Optional[str] = None
|
||||
Reference in New Issue
Block a user