Authentication API endpoints.
Provides endpoints for user registration, login, logout, token refresh,
password reset, and email verification.
Classes
Functions
password_reset_validate
password_reset_validate(token: str, session: Session = Depends(get_session))
Validate a password reset token via GET with query parameter.
This endpoint checks if a reset token is valid without consuming it.
Useful for showing a password reset form or error message.
Source code in fastauth/api/auth.py
| @router.get("/password-reset/validate")
def password_reset_validate(
token: str,
session: Session = Depends(get_session),
):
"""
Validate a password reset token via GET with query parameter.
This endpoint checks if a reset token is valid without consuming it.
Useful for showing a password reset form or error message.
"""
from datetime import UTC, datetime
from fastauth.security.tokens import hash_token
adapters = AdapterFactory(session=session)
token_hash = hash_token(token)
record = adapters.password_resets.get_valid(token_hash=token_hash)
if not record:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail=ErrorMessages.INVALID_OR_EXPIRED_RESET_TOKEN,
)
expires_at = record.expires_at
if expires_at.tzinfo is None:
expires_at = expires_at.replace(tzinfo=UTC)
if expires_at < datetime.now(UTC):
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail="Expired reset token",
)
return {
"message": "Valid reset token",
"status": "valid",
"token": token,
}
|
email_verification_confirm
email_verification_confirm(
payload: EmailVerificationConfirm, session: Session = Depends(get_session)
)
Confirm email verification via POST with JSON payload.
Source code in fastauth/api/auth.py
| @router.post("/email-verification/confirm", status_code=status.HTTP_204_NO_CONTENT)
def email_verification_confirm(
payload: EmailVerificationConfirm,
session: Session = Depends(get_session),
):
"""Confirm email verification via POST with JSON payload."""
_confirm_email_verification_helper(payload.token, session)
return None
|
email_verification_confirm_get
email_verification_confirm_get(
token: str, session: Session = Depends(get_session)
)
Confirm email verification via GET with query parameter.
This endpoint enables clickable email verification links.
Source code in fastauth/api/auth.py
| @router.get("/email-verification/confirm")
def email_verification_confirm_get(
token: str,
session: Session = Depends(get_session),
):
"""Confirm email verification via GET with query parameter.
This endpoint enables clickable email verification links.
"""
_confirm_email_verification_helper(token, session)
return {
"message": "Email verified successfully",
"status": "success",
}
|