Files
2026-06-20 15:01:44 +05:30

17 lines
512 B
Python

import secrets
from fastapi import Request
CSRF_KEY = "csrf_token"
def get_or_create_csrf_token(request: Request) -> str:
token = request.session.get(CSRF_KEY)
if not token:
token = secrets.token_urlsafe(32)
request.session[CSRF_KEY] = token
return token
def validate_csrf(request: Request, form_token: str | None) -> None:
token = request.session.get(CSRF_KEY)
if not token or not form_token or token != form_token:
raise PermissionError("CSRF validation failed")