Unable to set cookies / write headers from proxy
Created by: robertjchristian
I am trying to write a header on the response object from within the proxy:
// dependencies
var httpProxy = require('./lib/node-http-proxy'),
http = require('http');
//
// Setup proxy server on 8000
//
var server = httpProxy.createServer(function (req, res, proxy) {
// fetch cookies
var cookies = {};
req.headers.cookie && req.headers.cookie.split(';').forEach(function( cookie ) {
var parts = cookie.split('=');
cookies[ parts[ 0 ].trim() ] = ( parts[ 1 ] || '' ).trim();
});
console.log(cookies);
// write session cookie
res.writeHead(200, {
'Set-Cookie': 'token=12345678'
});
// proxy requests to localhost:9000
proxy.proxyRequest(req, res, {
host: 'localhost',
port: 9000,
});
});
server.listen(8000);
//
// Dummy target server on port 9000 (echo request)
//
http.createServer(function (req, res) {
res.write('Echo service: ' + req.url + '\n' + JSON.stringify(req.headers, true, 2));
res.end();
}).listen(9000);
And http fails with "Cannot write header/s after they have been written." Reverse proxy documentation says nothing about setting cookies. What am I doing wrong?