我试图在整个网络应用程序中保存 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/