archive-backend/core/authx.py
2026-11-07 11:40:36 +00:00

40 lines
1.2 KiB
Python

# core/authx.py
from authx import AuthX, AuthXConfig
from .config import settings
config = AuthXConfig(
JWT_SECRET_KEY=settings.SECRET_KEY,
JWT_ALGORITHM=settings.ALGORITHM,
# откуда берём токен
JWT_TOKEN_LOCATION=["cookies"],
# access
JWT_ACCESS_TOKEN_EXPIRES=settings.ACCESS_TOKEN_EXPIRE_MINUTES * 60,
JWT_ACCESS_COOKIE_NAME="access_token",
JWT_ACCESS_COOKIE_PATH="/",
JWT_ACCESS_CSRF_HEADER_NAME="X-CSRF-Token",
JWT_ACCESS_CSRF_COOKIE_NAME="csrf_access_token",
JWT_ACCESS_CSRF_COOKIE_PATH="/",
# refresh
JWT_REFRESH_TOKEN_EXPIRES=settings.REFRESH_TOKEN_EXPIRE_DAYS * 24 * 60 * 60,
JWT_REFRESH_COOKIE_NAME="refresh_token",
JWT_REFRESH_COOKIE_PATH="/auth/refresh",
JWT_REFRESH_CSRF_HEADER_NAME="X-CSRF-Token",
JWT_REFRESH_CSRF_COOKIE_NAME="csrf_refresh_token",
JWT_REFRESH_CSRF_COOKIE_PATH="/auth/refresh",
# cookies
JWT_COOKIE_SECURE=settings.COOKIE_SECURE,
JWT_COOKIE_SAMESITE="lax",
JWT_COOKIE_HTTP_ONLY=True,
# CSRF
JWT_COOKIE_CSRF_PROTECT=True,
JWT_CSRF_IN_COOKIES=True,
JWT_CSRF_METHODS=["POST", "PUT", "PATCH", "DELETE"],
)
auth = AuthX(config=config)