Передайте токен Django CSRF в Angular с помощью CSRF_COOKIE_HTTPONLY

В Джанго, когдаCSRF_COOKIE_HTTPONLY если для этого параметра установлено значение True, файл cookie CSRF получает флаг httponly, что желательно с точки зрения безопасности, но нарушает стандартное угловое решение добавления этого файла cookie в httpProvider следующим образом:

$httpProvider.defaults.xsrfCookieName = 'csrftoken';
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';

В Django 1.9 был обходной путь, при котором вы могли просто передать cookie непосредственно в приложение, поместив его в шаблон:

<script>
    window.csrf_token = "{{ csrf_token }}";
</script>

И положить это в угловое приложение:

angularApp.config(["$httpProvider", function($httpProvider)e {
    $httpProvider.defaults.headers.common["X-CSRFToken"] = window.csrf_token;
}]

К сожалению, это не работает для одностраничных угловых приложений в Django 1.10+, поскольку файл cookie CSRF изменяется после каждого запроса. Как вы делаете почтовые запросы от Angular до Django 1.10+ сCSRF_COOKIE_HTTPONLY установка на?
NB: Отключение защиты CSRF не является приемлемым ответом.

Ответы на вопрос(1)

Ваш ответ на вопрос