Почему я не могу заставить Axios установить заголовки токенов CSRF?

#reactjs #django #authentication #axios #next.js

Вопрос:

У меня есть файл cookie только для HTTP, который был установлен Django для аутентификации на основе сеанса. Когда я пытаюсь сделать запрос на публикацию в своем Next.Js приложение, которое я получаю detail: "CSRF Failed: CSRF token missing or incorrect." . Я знаю, что мне нужен X-CSRFToken заголовок, но Axios не установит его для меня. Файлы cookie отправляются в запросе только не в качестве заголовка. Мой запрос на публикацию выглядит так:

 axios
      .post(`${process.env.NEXT_PUBLIC_API_URL}/shops`, createShopFormData, {
        xsrfHeaderName: 'X-CSRFToken',
        xsrfCookieName: 'csrftoken',
        withCredentials: true,
      })
      .then((response: AxiosResponse) => {
        console.log(response);
      })
      .catch((error: AxiosError) => {
        console.log(error.response?.data.message);
      });
  };
 

Файлы cookie отображаются в запросе.

Показывать после заголовков запросов

Отредактировано, чтобы отображаться после Агента пользователя. Маркер изменился, потому что я возился с ним между правками.

Комментарии:

1. Можете ли вы показывать заголовки запросов после агента пользователя

2. На этом заголовки запросов заканчиваются, и отображается моя полезная нагрузка.

3. Может быть, ваш csrftoken файл cookie является HttpOnly? Если это так, вы не можете прочитать его из браузера. Я думаю, что по умолчанию это не должно быть HttpOnly, но стоит это проверить.