
- Add role-based access control (admin/user roles) - Implement refresh token functionality - Add token revocation (logout) capability - Create admin-only endpoints - Add role validation middleware - Update documentation
39 lines
741 B
Python
39 lines
741 B
Python
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class Token(BaseModel):
|
|
access_token: str
|
|
token_type: str
|
|
refresh_token: Optional[str] = None
|
|
expires_at: Optional[datetime] = None
|
|
|
|
|
|
class TokenPayload(BaseModel):
|
|
sub: Optional[int] = None
|
|
exp: Optional[datetime] = None
|
|
type: Optional[str] = "access"
|
|
|
|
|
|
class RefreshTokenCreate(BaseModel):
|
|
token: str
|
|
expires_at: datetime
|
|
user_id: int
|
|
|
|
|
|
class RefreshTokenUpdate(BaseModel):
|
|
revoked: Optional[bool] = None
|
|
|
|
|
|
class RefreshTokenInDB(BaseModel):
|
|
id: int
|
|
token: str
|
|
expires_at: datetime
|
|
created_at: datetime
|
|
revoked: bool
|
|
user_id: int
|
|
|
|
class Config:
|
|
from_attributes = True |