"""Jeton CSRF — un seul jeton par SESSION (pas un par formulaire, comme le ferait Flask-WTF) : suffisant ici et beaucoup plus simple à propager partout où l'appli envoie une requête qui modifie quelque chose, que ce soit un
classique (intercepté par pjax.js, voir static/pjax.js) ou un fetch() construit à la main (screen_edit.html, game_dashboard.html, play.html...) — voir static/csrf_fetch.js, qui l'ajoute automatiquement en en-tête à CHAQUE fetch() non-GET de l'appli plutôt que de devoir modifier individuellement chacun des nombreux appels existants.""" import secrets from flask import session from .flask_app import app def get_csrf_token() -> str: token = session.get("csrf_token") if not token: token = secrets.token_urlsafe(32) session["csrf_token"] = token return str(token) app.jinja_env.globals["csrf_token"] = get_csrf_token