2016-08-25 1 views
0

Итак, я проксирую свои запросы API через node-http-proxy по нескольким причинам.Изменить файлы ответов с помощью node-http-proxy?

Внешний 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) 
}) 

В принципе, мне нужно изменить куки для req.headers.host, так как это правильное начало.

Я видел Harmon, но это выглядит очень привлекательным и меняет способ создания экземпляра всего приложения, если я правильно понимаю.

Есть ли способ просто изменить proxyRes после того, как получает его синхронно?

Это кажется очень странным, что есть proxyReq событие, которое позволяет изменять запрос прокси перед отправкой, но не эквивалент, который позволяет изменять ответ ...

ответ

0

Для тех, кто сталкивается с той же вопрос, я нашел решение. Они просто объединили PR a few days ago, который еще не попал в новый релиз.

Этот PR представляет новый вариант: cookieDomainRewrite, который делает именно то, на что это похоже. Просто включите это в свой конфиг, и все это позаботится.