Пижама + Джанго => CSRF путаница, 403 ошибки

У меня есть пижамы и Django, работающие через Apache2 с mod_wsgi в Windows 7. Однако я не верю, что у меня возникают проблемы с настройками этих вещей: единственное, что не работает, это попытка POST-информации из сгенерированной пижамой информации формы. Попытка использовать сгенерированные пижамой формы в моем приложении приводит к 403 (страница ошибки "Ошибка проверки CSRF").

Я потратил часы на это и прочитал все ответы, которые я мог найти здесь, связанные с CSRF и пижамой, и провел много внешних исследований только по CSRF и Django, Django и Ajax и т. Д. Если этот вопрос никому не доходит кто знает, что делать в этой ситуации, я думаю, что обдумал суть вопроса.

Как бы получить {% csrf_token %} в сгенерированную пижаму форму? Кажется, что это может быть невозможно, потому что, насколько я понимаю, токены CSRF не являются постоянными, а страница, генерируемая пижамой... Моя страница пижам генерируется из пижам .py файл, в результате чего в папке полно жестко закодированных вещей. Как получилось, что я интегрировал бы текущий токен CSRF в эту уже закодированную форму?

Пожалуйста, не стесняйтесь спрашивать более подробную информацию, по этому вопросу было невероятно трудно ориентироваться. Ни одна из опубликованных сведений об интеграции Pyjamas & Django не относится к этому; и единственные найденные мной решения, которые, кажется, знают о CSRF в Django, говорят, что вам, вероятно, следует просто отключить защиту CSRF (что я мог бы сделать, но какую защиту я мог бы вместо нее установить? Моя собственная система cookie? Это ужасная идея? отключить защиту CSRF в любом случае?).

Спасибо!

1 ответ

Решение

Вам нужно будет написать немного JavaScript, чтобы получить токен CSRF из cookie-файла (часть HTTP-запроса), а затем добавить его в форму при отправке.

Посмотрите на этот ответ для начальной точки: проверка CSRF Django завершилась неудачно с запросом Ajax POST

Ключевым моментом здесь является то, что JavaScript может быть таким же постоянным, как и ваши сгенерированные пижамой файлы, потому что они откладывают обработку токена до отправки формы.

Другие вопросы по тегам