web-dev-qa-db-fra.com

Comment envoyer des cookies avec node-fetch?

J'ai une application nodejs qui gère les requêtes de l'utilisateur et reçoit des cookies que je souhaite utiliser comme proxy pour un service d'API interne. Comment aborder cela en utilisant node-fetch?

Ne pas offrir superagent s'il vous plaît.

12
Skay

Vous devriez pouvoir transmettre des cookies en le plaçant dans l'en-tête de votre demande:

const opts = {
    headers: {
        cookie: 'accessToken=1234abc; userId=1234'
    }
};
const result = await fetch(`/some/url`, opts);
16
plemarquand

Pour simplifier, vous pouvez écrire un middleware qui inclura les cookies dans global.fetch, comme ci-dessous.

const realFetch = fetch;

function cookieFetch(fetch, cookie) {
  return (url, opts) => {
    opts = opts || {};
    return fetch(url, Object.assign(opts, {
      headers: Object.assign(opts.headers || {}, { cookie })
    }));
  };
}

function middleware(req, res, next) {
  const kuki = req.headers.cookie;
  global.fetch = kuki ?
    cookieFetch(realFetch, kuki) :
    realFetch;
  next();
}

module.exports = middleware;
0
Caojs