Проверка cookie в React - PullRequest
       45

Проверка cookie в React

0 голосов
/ 02 июня 2019

TLDR - не могу понять, как отправить файл cookie из React после того, как он пришел в качестве файла cookie ответа, не уверен, нужен ли мне доступ к нему из браузера или он включен неявно, и я просто не использую правильные заголовки и т. Д.? спасибо ❤

Мне удалось успешно получить свой бэкэнд Node.js для отправки файла cookie в браузер через приложение реагирования с использованием cookie-парсера:

res.cookie('cookieName','myCookie').status(200).send("Log in successful!");

Что происходит от моегозапрос на выборку в React:

fetch("http://localhost:5000/login", {
        method: "POST",
        mode: "cors",
        headers: {
        "Content-Type": "application/json",
        "Access-Control-Allow-Headers": 'x-access-token' //tried with/without this
        },
        credentials: 'same-origin',
        redirect: "follow", 
        referrer: "no-referrer", 
        body: JSON.stringify(data) 
    }).then(res =>    {

      if(res.status === 200){
        console.log("success");
      }

Кажется, это работает!Если я проверяю вкладку «сеть» и смотрю на ответ, он содержит cookie-файл ответа:

cookieName:
   path:/
   value: myCookie

Я сейчас просто пытаюсь отправить запрос на сервер, включая этот cookie, чтобыпроверить сеанс и т. д., но когда я пытаюсь распечатать файл cookie на сервере, он говорит, что его нет. ? Вот как я пытаюсь отправить запрос, я предполагал, что файл cookie браузера будет включен, но, возможно, мне нужно включитьэто явно как-то?Вот как выглядит мой запрос:

checkCookies = () => {
        fetch("http://localhost:5000/checkcookie", {
        method: "POST", 
        mode: "cors", 
        headers: {
        "Content-Type": "application/json",
        },
        credentials: 'same-origin', // also tried "include"
        redirect: "follow", 
        referrer: "no-referrer", 
        body: JSON.stringify({name: "test"}) 
    })
    }.then(...

1 Ответ

0 голосов
/ 03 июня 2019

Fetch по умолчанию не использует куки. Чтобы включить куки:

fetch(url, {
  method: 'GET',
  credentials: 'include'
})
.then(...)

Вам необходимо установить одинаковое значение credentials в обоих вызовах.

Проверьте, сохраняются ли куки в браузере после первого запроса, на вкладке Application.

...