私は、ユーザーの要求を処理し、内部APIサービスに代理したいcookieを受け取るnodejsアプリケーションを持っています。ノードフェッチを使用してこれにアプローチする方法は?ノードフェッチでクッキーを送信するには?
スーパーエージェントを提供しないでください。
私は、ユーザーの要求を処理し、内部APIサービスに代理したいcookieを受け取るnodejsアプリケーションを持っています。ノードフェッチを使用してこれにアプローチする方法は?ノードフェッチでクッキーを送信するには?
スーパーエージェントを提供しないでください。
あなたのリクエストのヘッダにそれを設定することにより、クッキーに沿って通過することができる必要があります:あなたはglobal.fetchにクッキーが含まれるミドルウェアを書くことができ、簡単なために
const opts = {
headers: {
cookie: 'accessToken=1234abc; userId=1234'
}
};
const result = await fetch(`/some/url`, opts);
node-featchは必要ありません。リクエストヘッダー "Cookie"からユーザーのCookieを読み取ることができます。 https://nodejs.org/dist/latest-v5.x/docs/api/http.html#http_message_headers
ただし、クロスドメイン要求を使用する場合は、クライアント要求にwithCredentialを設定し、サーバーにCORSヘッダーを追加する必要があります。これを参照してください:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
、以下のように。
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;
私は達成しようとしていることを誤解しています。それはサーバーからサーバーへのクライアントではなく、サーバー間のサーバーに関するものです。私はnodejsアプリケーションで着信要求を持っています。はい、私は既に要求オブジェクトからそれを持っているので、私はクッキーを読むためにノードフェッチを必要としません。私が必要とするのは、外部APIへの別のリクエストとともにこれらのCookieを渡すことです。何らかの形でノードをフェッチしてこれらのクッキーを代理することは可能ですか? – Skay
ここにsuperagentの例があります - https://github.com/erikras/react-redux-universal-hot-example/blob/master/src/helpers/ApiClient.js#L33 - 同じことを可能にするかどうかノードをフェッチする? – Skay