Question

J'ai Pyjama et Django via en cours d'exécution avec mod_wsgi sur Apache2 Windows 7. Je ne crois pas que je reçois des questions des configurations de ces choses, cependant: la seule chose qui ne fonctionne pas tente d'informations POST de formulaires générés pyjamas. Essayer d'utiliser des formulaires générés Pyjama dans mon application produit 403S (la page d'erreur « vérification CSRF a échoué »).

J'ai passé des heures sur ce sujet et lire toutes les réponses que je pouvais trouver ici en rapport avec CSRF et Pyjama, et fait beaucoup de recherche externe seulement sur CSRF et Django, Django et Ajax, etc. Si cette ISN question » t pour atteindre tous ceux qui ont sait exactement quoi faire dans cette situation, je pense que je l'ai amenuisé l'essence de la question.

Comment peut-on obtenir le {% csrf_token %} dans le formulaire généré Pyjama? Il semble que cela pourrait être impossible, car d'après ce que je comprends des jetons CSRF ne sont pas persistants, qui une page générée Pyjama est ... la page My est générée à partir Pyjama un fichier .py Pyjama, ce qui dans un dossier plein de trucs codés en dur . Comment est-ce que j'intégrerait le CSRF actuel jeton dans cette forme déjà codés?

S'il vous plaît ne pas hésiter à demander plus de détails, cette question a été incroyablement difficile de naviguer. Aucune des informations publiées sur l'intégration Pyjama & Django considère cela; et les seules solutions que j'ai trouvé qui semblent conscients de CSRF dans Django disent que vous devriez probablement juste désactiver la protection CSRF (que je peut faire, mais quelle protection pourrais-je mettre en place de celui-ci? Mon propre cookie système? Est-ce une mauvaise idée de désactiver la protection CSRF dans tous les cas?).

Merci!

Était-ce utile?

La solution

Vous aurez besoin d'écrire un peu de JavaScript pour obtenir le CSRF jeton du cookie (partie de la requête HTTP), puis l'ajouter à la forme sur soumettre.

Regardez cette réponse pour un point de départ: Django CSRF vérifier à défaut avec une requête POST Ajax

La clé ici est que le JavaScript peut être aussi persistante que vos fichiers générés par Pyjama, parce qu'ils manipulation Différer le jeton jusqu'à ce que l'envoi du formulaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top