node.js - 如何在express和socket.io中使用sessionID

标签 node.js session express socket.io

我试图在整个网络应用程序中保存 session 数据,但我很难在所有地方获得相同的 sessionID。

这段代码中的sessionID有什么用(与express一起使用):

app.get('/test-page', function(req, res) {
    console.log(req.sessionID);
});

每次打开页面时,我都会在此处获得一个新的 sessionID。

此外,我使用此代码从我的 socket.io 中的 cookie 获取 sessionID:

io.set('authorization', function(handshakeData, accept) {
    if (handshakeData.headers.cookie) {
        handshakeData.cookie = parseCookie(handshakeData.headers.cookie);
        handshakeData.sessionID = handshakeData.cookie['express.sid'];
    } else {
        handshakeData.sessionID = -1;
    }
    accept(null, true);
});

io.sockets.on('connection', function(socket) {
    console.log('client connected, ssID: ' + socket.handshake.sessionID);
});

如何在 app.get('/test-page',... 中获取相同的 session ?反之亦然。

最佳答案

我从来没有弄清楚这一点,但你总是可以对 express.io 进行一些重写

查看 sessions example ,似乎正是您所需要的。

关于node.js - 如何在express和socket.io中使用sessionID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23728331/

相关文章:

javascript - 在 Node.js 中使用 mongoose 时的问题

在同一域上切换选项卡时 PHP session 重置

java - hibernate 随机 "Session is closed error"与 2 个数据库

javascript - 要求 sequilize 模块在某些快速应用程序文件中返回未定义

node.js - 如何从 typeorm 实体中排除列,并且可以选择使用 Find 方法获取该列

javascript - vue.js - 在我的项目中实现 Auth0 示例给我 _vm.login 不是一个函数(…)

javascript - Node JS 忽略未定义的检查

asp.net - session 在 asp.net 网站上混在一起

mysql - 在依赖于顺序响应的 MySQL 的两个查询之间注入(inject) API 调用

node.js - express 4 支持布局的模板引擎