Как получить CSRF от django в отдельном приложении React - PullRequest
2 голосов
/ 17 октября 2019

После исследования токенов CSRF и django становится ясно, что приложение React должно отображаться через django, чтобы получить токен CSRF обычным образом (т. Е. Внедрено в DOM).

Единственная причина, по которой у меня возникают проблемыя знаю, что Instagram использует Django и React для своего веб-приложения;Я нахожу это крайне маловероятным, что он воспроизводится - по крайней мере, традиционным способом - django.

Я понимаю, что будет трудно найти ответ, как они справляются с этим, но, возможно, кто-то знает способсделать это без рендеринга очень большого приложения реакции уровня предприятия с помощью django.

Чтобы дать некоторую перспективу, наше приложение реакции находится в отдельном каталоге repo & на другом поддомене нашего API на основе django.

Мы искали рекомендации в каждой области, о которой я могу думать, и еще не нашли правильного решения, поэтому я ценю любые отзывы, которые вы можете дать

Ответы [ 2 ]

0 голосов
/ 30 октября 2019

Вы можете сохранить токен csrf в файле cookie, используя при необходимости ensure_csrf_cookie и добавляя заголовок к запросам XHR:

import Cookies from 'js-cookie';

Request.post(url)
    .set('X-CSRFToken', Cookies.get('csrftoken'))
    .send(data)
0 голосов
/ 17 октября 2019

Вы можете сгенерировать токен csrf следующим образом:

from django.middleware.csrf import get_token
csrf_token = get_token(request)
...