31 lines
575 B
Python
31 lines
575 B
Python
"""Token-related Pydantic schemas."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, EmailStr
|
|
|
|
|
|
class TokenPayload(BaseModel):
|
|
sub: str
|
|
exp: datetime
|
|
email: EmailStr | None = None
|
|
|
|
|
|
class TokenResponse(BaseModel):
|
|
access_token: str
|
|
refresh_token: str
|
|
token_type: str = "bearer" # noqa: S105 -- OAuth2 spec default value
|
|
expires_in: int
|
|
refresh_expires_in: int
|
|
|
|
|
|
class LoginRequest(BaseModel):
|
|
email: EmailStr
|
|
password: str
|
|
|
|
|
|
class RefreshRequest(BaseModel):
|
|
refresh_token: str
|