2016-08-25 19 views
0

因此,我通過node-http-proxy代理我的API請求,原因有幾個。使用node-http-proxy更改響應cookie?

外部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

對於任何人面臨同樣的問題,我找到了解決方案。他們只合並了一個PR a few days ago,但尚未將其發佈爲新版本。

這PR引入了一個名爲cookieDomainRewrite這也正是它聽起來像新的選擇。只需將其包含在您的配置中,並且全部都照顧好了。