【发布时间】:2016-08-25 08:21:46
【问题描述】:
因此,我通过 node-http-proxy 代理我的 API 请求有几个原因。
外部 API 的来源与实际客户端不同,因此未正确设置 cookie。代理显然运行在同一个来源,所以我想从 API 接收响应,并在代理内部,更改 cookie 值以反映正确的来源。
这是我目前的设置:
// Proxy to API server
app.use('/api', (req, res) => {
proxy.web(req, res, { target: targetUrl })
})
proxy.on('proxyRes', function (proxyRes, req, res) {
console.log('RAW Response from the target', JSON.stringify(proxyRes.headers, true, 2))
console.log('The original request', req.headers.host)
})
基本上,我需要将 cookie 修改为 req.headers.host,因为这是正确的来源。
我见过Harmon,但如果我理解正确的话,这看起来非常复杂,并且会改变您实例化整个应用程序的方式。
有没有办法在接收到 proxyRes 后,以同步的方式简单地修改它?
似乎很奇怪,有一个proxyReq 事件允许您在发送之前更改代理请求,但没有允许您更改响应的等价物......
【问题讨论】:
标签: node.js express cookies proxy node-http-proxy