Persistindo uma sessão baseada em cookie sobre o node-http-proxy

Eu tenho um servidor web Node.js simples e expresso que estou usando para o desenvolvimento de um aplicativo JavaScript. Eu configurei o servidor para usar o node-http-proxy para solicitações de API de proxy que o aplicativo faz para um servidor Jetty que está sendo executado em um domínio e porta diferentes. Esta configuração tem funcionado perfeitamente até que comecei a ter problemas com o gerenciamento de sessões.

Na autenticação, o servidor de aplicativos retorna um cookie com um token de autenticação representando a sessão do servidor. Quando executo o aplicativo JS fora do meu sistema de arquivos (file: //), vejo que uma vez que o cliente recebe o cookie, ele é enviado em todas as solicitações de API subseqüentes. Quando executo o aplicativo JS no servidor do nó e as chamadas da API são intermediadas por proxy através do nó-http-proxy (RoutingProxy), os cabeçalhos da solicitação nunca incluem o cookie.

Existe algo que eu preciso manipular manualmente para suportar esse tipo de persistência de sessão por meio do proxy? Eu tenho cavado através do código node-http-proxy mas é um pouco sobre a minha cabeça porque eu sou novo no Node.

https://gist.github.com/2475547 ou:

<code>var express = require('express'),
    routingProxy = require('http-proxy').RoutingProxy(),
    app = express.createServer();

var apiVersion = 1.0,
    apiHost = my.host.com,
    apiPort = 8080;

function apiProxy(pattern, host, port) {
    return function(req, res, next) {
        if (req.url.match(pattern)) {
            routingProxy.proxyRequest(req, res, {host: host, port: port});
        } else {
            next();
        }
    }
}

app.configure(function () {
    // API proxy middleware
    app.use(apiProxy(new RegExp('\/' + apiVersion + '\/.*'), apiHost, apiPort));

    // Static content middleware
    app.use(express.methodOverride());
    app.use(express.bodyParser());
    app.use(express.static(__dirname));
    app.use(express.errorHandler({
        dumpExceptions: true, 
        showStack: true
    }));
    app.use(app.router);
});

app.listen(3000);
</code>

questionAnswers(4)

yourAnswerToTheQuestion