Ho un'applicazione nodejs che gestisce le richieste dell'utente e riceve i cookie che voglio proxy al servizio API interno. Come avvicinarsi a questo usando node-fetch?Come inviare cookie con node-fetch?
Non offrire superagente per favore.
Ho un'applicazione nodejs che gestisce le richieste dell'utente e riceve i cookie che voglio proxy al servizio API interno. Come avvicinarsi a questo usando node-fetch?Come inviare cookie con node-fetch?
Non offrire superagente per favore.
Dovreste essere in grado di passare lungo i cookie impostandolo nell'intestazione della richiesta:
const opts = {
headers: {
cookie: 'accessToken=1234abc; userId=1234'
}
};
const result = await fetch(`/some/url`, opts);
Non hai bisogno di node-featch, puoi leggere i cookie degli utenti dall'intestazione della richiesta "Cookie". Vedere https://nodejs.org/dist/latest-v5.x/docs/api/http.html#http_message_headers
Tuttavia, se si utilizza la richiesta tra domini, è necessario configurare la richiesta client con withCredential e aggiungere intestazioni CORS sul server. Vedere questo: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
Per semplice, è possibile scrivere un middleware che includerà i cookie per global.fetch , come sotto.
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;
Hai frainteso ciò che cerco di raggiungere. Non si tratta di client per server, si tratta di server-to-server. Ho una richiesta in arrivo nell'applicazione nodejs. Sì, non ho bisogno di node-fetch per leggere i cookie poiché lo ho già da oggetto richiesta. Quello di cui ho bisogno è di passare questi cookie con un'altra richiesta di API esterna. È possibile proxy questi cookie con node-fetch in qualche modo o no? – Skay
Ecco un esempio con superagent - https://github.com/erikras/react-redux-universal-hot-example/blob/master/src/helpers/ApiClient.js#L33 - è possibile fare lo stesso con node-fetch? – Skay