我有我使用了JavaScript的应用程序的开发一个简单的基于Node.js的快递网络服务器。 我设置的服务器使用节点HTTP代理到代理API请求的应用程序向被在不同的域和端口运行的Jetty服务器。 这种设置一直工作完美无缺,直到我开始跑与会话管理的问题。
经认证的应用服务器返回与代表服务器会话的身份验证令牌的cookie。 当我运行JS应用了我的文件系统(文件://)我可以看到,一旦客户端接收的cookie,它在所有后续API请求发送。 当我在节点服务器上运行的应用程序的JS和API调用都是通过节点-HTTP代理(RoutingProxy)代理请求头从不包括饼干。
有什么我需要手动处理通过代理来支持这种类型的会话持久性? 我已经挖通过节点的HTTP代理代码,但它是一点点在我头上,因为我是新来的节点。
https://gist.github.com/2475547或:
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);