axios не отправляет куки - PullRequest
       3

axios не отправляет куки

0 голосов
/ 23 февраля 2019

Я использую Next.js для клиента, django для сервера API.Next.js: 127.0.0.1:3000 django: 127.0.0.1:8000

Проблема

При отправке GET-запроса на api-сервер с axios куки не будутзадавать.Эти куки были отправлены api, установленным в браузере как httpOnly.

Исходный код

отправить запрос GET следующим образом:

const auth = axios.create({
  baseURL: 'http://127.0.0.1:8000/api/v1/auth',
  headers: { 'Content-Type': 'application/json' },
  withCredentials: true
})

const { data } = await auth.get('/test/')

настройки djangoо CORS:

CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = (
    '127.0.0.1:3000'
)
CORS_ALLOW_CREDENTIALS = True

куки: enter image description here

Что я пробовал

Во-первых, я проверил сервер APIполучает запрос или нет

const { data } = await auth.get('/user/', {
  headers: {
    Cookie: `token=${token}`
  }
})

Когда я прикрепляю куки вручную, как описано выше, это работает.Я мог бы проверить этот запрос. У Cookies есть файлы cookie в django.

Просто чтобы быть уверенным, я также отправляю запрос GET с файлами cookie через Postman, он работает.Джанго получил печенье.

Тогда я подумал, что у Аксиоса, возможно, есть некоторые проблемы.Итак, я попробовал извлечь, изоморфно-извлечь и изоморфно-получить.Но это не сработало.

Это результат запроса GET в chrome.enter image description here

Наконец, это отрывок результатов, которые запрашивает django.META при отправке каждого запроса через Почтальон и Axios.

Postman
'HTTP_CACHE_CONTROL': 'no-cache',
'HTTP_POSTMAN_TOKEN': '9077175d-4da7-4196-b2c6-3ef0b04568f9', 
'HTTP_USER_AGENT': 'PostmanRuntime/7.6.0', 
'HTTP_ACCEPT': '*/*',
'HTTP_HOST': '127.0.0.1:8000', 
'HTTP_COOKIE': 'token=179780f7ca388ae1dec47f5dee717a4b7cb5848e0c21b68b2a5715e62115570b',
'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
'HTTP_CONNECTION': 'keep-alive'

axios
'HTTP_ACCEPT': 'application/json, text/plain, */*',
'HTTP_USER_AGENT': 'axios/0.18.0',
'HTTP_HOST': '127.0.0.1:8000',
'HTTP_CONNECTION': 'close'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...