Skip to content

Schemas

bluefox_auth.schemas

Pydantic request and response models.

Request schemas

RegisterRequest

class RegisterRequest(BaseModel):
    email: EmailStr
    password: str = Field(min_length=8)

Password is validated to not exceed 72 bytes when UTF-8 encoded (bcrypt's limit).

LoginRequest

class LoginRequest(BaseModel):
    email: EmailStr
    password: str = Field(max_length=256)

RefreshRequest

class RefreshRequest(BaseModel):
    refresh_token: str

LogoutRequest

class LogoutRequest(BaseModel):
    refresh_token: str | None = None

PasswordResetRequest

class PasswordResetRequest(BaseModel):
    email: EmailStr

PasswordResetConfirm

class PasswordResetConfirm(BaseModel):
    token: str
    new_password: str = Field(min_length=8)

new_password has the same 72-byte UTF-8 validation as registration.

EmailVerificationRequest

class EmailVerificationRequest(BaseModel):
    token: str

Response schemas

TokenResponse

class TokenResponse(BaseModel):
    access_token: str
    refresh_token: str
    token_type: str = "bearer"

UserResponse

class UserResponse(BaseModel):
    id: int
    email: str
    is_active: bool
    is_superuser: bool
    email_verified: bool

Has from_attributes = True for direct ORM model conversion.

MessageResponse

class MessageResponse(BaseModel):
    message: str