Session 未持久化/检索NodeJS会话

Session 未持久化/检索NodeJS会话,session,node.js,Session,Node.js,我正在尝试对节点进行会话身份验证。这段代码在本地主机上运行时运行良好,但在远程服务器上无法检索会话 每次点击远程服务器时,我都可以看到生成了一个新的会话id,而在本地主机上它保持不变 请注意,我是通过一个ip地址(没有客户端JS)通过浏览器直接访问URL的。这个问题最初出现在expressJS/jquery中,但我成功地用以下代码重现了这个问题: var express = require('express'); var app = express.createServer(); app.co

我正在尝试对节点进行会话身份验证。这段代码在本地主机上运行时运行良好,但在远程服务器上无法检索会话

每次点击远程服务器时,我都可以看到生成了一个新的会话id,而在本地主机上它保持不变

请注意,我是通过一个ip地址(没有客户端JS)通过浏览器直接访问URL的。这个问题最初出现在expressJS/jquery中,但我成功地用以下代码重现了这个问题:

var express = require('express');
var app = express.createServer();

app.configure(function(){
    app.use(express.bodyParser());
    app.use(express.cookieParser());
    app.use(express.session({ secret: "keyboard cat" }));
    app.use(app.router);
});

app.get('/login', function(req, res){
    // Perhaps we posted several items with a form
    // (use the bodyParser() middleware for this)
    req.session.loggedIn = true;
    var msg = "You are logged In. SessionId:"+req.session.id;
    console.log(msg);
    res.end(msg);
});

app.get('/isLoggedIn', function(req, res){
    var msg = "isLoggedIn: "+req.session.loggedIn+" SessionId:"+req.session.id;
    console.log(msg);
    res.end(msg);
});

app.get('/logout', function(req, res){
    req.session.destroy();
    var msg = "Logged out";
    console.log(msg);
    res.end(msg);
});

app.listen(3000);
你知道可能出了什么问题吗

节点:v0.4.12 连接:v1.7.1

谢谢,
-尼古拉斯

这个密码看起来很乱。请看一下connect/express指南或示例来清理一下:感谢您的关注。谢天谢地,这不是生产代码。您可以看到它没有使用expressJS。如果你能更好地理解的话,我会用expressJS发布一个更清晰的代码。我改为使用expressJS实现。同样的问题。它在本地主机上工作。不是在我的远程服务器上。啊,这在眼睛上容易多了;)好的,会话id发生了变化,但是您保存在会话中的其他值呢?它们是否也发生了变化/丢失了?@kastormania,我还发现它与域有关,我使用SSL解决了这个问题。这是我只能用一台计算机复制的东西,因此很可能是浏览器上的一个bug。尝试使用其他域。这应该排除服务器问题。这段代码看起来很混乱。请看一下connect/express指南或示例来清理一下:感谢您的关注。谢天谢地,这不是生产代码。您可以看到它没有使用expressJS。如果你能更好地理解的话,我会用expressJS发布一个更清晰的代码。我改为使用expressJS实现。同样的问题。它在本地主机上工作。不是在我的远程服务器上。啊,这在眼睛上容易多了;)好的,会话id发生了变化,但是您保存在会话中的其他值呢?它们是否也发生了变化/丢失了?@kastormania,我还发现它与域有关,我使用SSL解决了这个问题。这是我只能用一台计算机复制的东西,因此很可能是浏览器上的一个bug。尝试使用其他域。这应该排除服务器问题。