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.
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);
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;