因此,由于多种原因,我通过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
事件允许您在发送代理请求之前更改代理请求,而不是允许您更改响应的等效事件,这似乎很奇怪......
答案 0 :(得分:0)
对于任何面临同样问题的人,我找到了解决方案。他们刚刚合并了PR a few days ago,但尚未将其发布为新版本。
此PR引入了一个名为cookieDomainRewrite
的新选项,它完全符合它的含义。只需将其包含在您的配置中,即可完成所有操作。