【问题标题】:Change response cookies with node-http-proxy?使用 node-http-proxy 更改响应 cookie?
【发布时间】: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


    【解决方案1】:

    对于面临相同问题的任何人,我都找到了解决方案。他们刚刚将尚未发布的PR a few days ago 合并到新版本中。

    此 PR 引入了一个名为 cookieDomainRewrite 的新选项,它的功能与听起来完全一样。只需将其包含在您的配置中即可。

    【讨论】:

      猜你喜欢
      • 2012-09-27
      • 1970-01-01
      • 2014-01-18
      • 1970-01-01
      • 1970-01-01
      • 2014-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多