#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);
});
};
Отредактировано, чтобы отображаться после Агента пользователя. Маркер изменился, потому что я возился с ним между правками.
Комментарии:
1. Можете ли вы показывать заголовки запросов после агента пользователя
2. На этом заголовки запросов заканчиваются, и отображается моя полезная нагрузка.
3. Может быть, ваш
csrftoken
файл cookie является HttpOnly? Если это так, вы не можете прочитать его из браузера. Я думаю, что по умолчанию это не должно быть HttpOnly, но стоит это проверить.