Отправить куки с запросом получения - PullRequest
0 голосов
/ 24 сентября 2019

Я аутентифицируюсь с сайтом https://a.com. Как только я аутентифицируюсь, я получаю доступ к http://b.com. a.com устанавливает cookie для сеанса, который мне нужно отправить, когда я делаю запрос на получение от b.com to a.com.

Подскажите, пожалуйста, как мне получить cookie-файл и передать его по моей просьбе.

Я пытался отправить запросы с помощью withCredentials: true, также пытался использовать поддержку axios-cookiejar-support с tough-cookie.Но, похоже, не работает.

    .get(a.com/path-requiring-cookie, {
      withCredentials: true,
      headers: {
        'Content-Type': 'application/json',
        'access-control-allow-credentials': true,
      },
    })
    .then(res => {
      console.log(res.data);
    });```

This is the code that I have to send the request.

But this doesn't seem to send the cookie with the request.  Can someone please clarify.

Ответы [ 2 ]

1 голос
/ 24 сентября 2019

Почему бы не использовать вместо этого функцию javascript, которая помогает извлекать Cookie на основе его имени, как показано ниже

function GetCookie(cName) {
  const name = `${cName}=`;
  const decodedCookie = decodeURIComponent(document.cookie);
  const ca = decodedCookie.split(';');
  for (let i = 0; i < ca.length; i++) {
    let c = ca[i];
    while (c.charAt(0) === ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) === 0) {
      return c.substring(name.length, c.length);
    }
  }
  return '';
};

console.log(GetCookie("SID"))
0 голосов
/ 24 сентября 2019

Загляните на этот вопрос .

Проблема, которую вы пытаетесь решить, - это чтение / отправка файлов cookie с / на разные домены.

Одно из решений,как указано в ранее связанном вопросе, было бы установить некоторые заголовки на http://b.com

Access-Control-Allow-Origin: http://b.com
Access-Control-Allow-Credentials: true

Это делается на сервере, который имеет домен http://b.com

Что-то в этом духе должнорешить проблему для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...