Как я могу использовать куки-файлы в реагирующем с сетевым уровнем реагирования-ретрансляции? - PullRequest
0 голосов
/ 17 марта 2019

Проблема, с которой я столкнулся, заключается в том, что не может иметь возможность включать файлы cookie в мои запросы уровня реакции-ретрансляции на уровне сети в поле реакции-нативной. Я установил fetchOpts.credentials на include (я также попробовал same-origin , но это тоже не сработало). Я пытаюсь проверить это на моем симуляторе iOS.

Вот промежуточное ПО, которое я использую в своей среде response-relay-network-layer.

// Grab cookie from store and set with cookiemanager
next => async req => {
  const cookieVal = await getCookie(); // RETURNS the Set-Cookie string (unformatted since response)

   // iOS requires a dict
  if (Platform.os === 'ios') {
    cookieToSet = { 'Set-Cookie': cookieVal }
  } else {
    cookieToSet = cookieVal;
  }

  console.log(cookieToSet); // This console.logs the expected result!

  // Note: The backend url is `http://localhost:5000`, however make graphql reqs to: `http://localhost:5000/graphql`
  const setCookieRes = await setCookieFromResponse('http://localhost:5000', cookieToSet);
  console.log(setCookieRes); // // This is ALWAYS undefined? Why though?

},

// Make the request & grab the Set-Cookie header if it's available
next => req =>
  next(req).then(async res => {
    const cookieVal = res.headers.get('set-cookie');
    if (cookieVal) {
      const splitCookieHeaders = cookieParser.splitCookiesString(cookieVal);
      const cookies = cookieParser.parse(splitCookieHeaders, {
        decodeValues: true,
        map: true,
      })
      let cookieToSet = '';

      // iOS requires a dict
      if (Platform.os === 'ios') {
        cookieToSet = { 'Set-Cookie': cookieVal }
      } else {
        cookieToSet = cookieVal;
      }

      const setCookieRes = await CookieManager.setFromResponse(
        'http://localhost:5000',
        cookieToSet
      );
      console.log(setCookieRes); // This is ALWAYS undefined?
    }
    After making another request the cookies aren't included?!
    ....
...