Prepare ERP source for Gitea deployment
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
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")
|
||||
Reference in New Issue
Block a user