【发布时间】:2020-02-02 16:07:39
【问题描述】:
我正在使用 Mongo Sessions 来保存用户数据(无需登录)。当用户第一次登录时,我在 db 上创建了一个新会话并在客户端上设置了一个 cookie,会话信息现在保存在 localStorage 中。我想为每个用户使用相同的会话,因此他们的会话对象还存储诸如 'Last Seen' 、 'Socket ID' 等内容。这些内容经常变化。
问题是当用户客户端删除 cookie 时(有任何机会),会创建一个新的 cookie + 会话,因此所有数据都“消失”了。 我的问题是“如何设置指向现有会话的新 cookie”?
// Anytime there is a (re)connection save the socketID to the session
io.on('connection', function(socket: i.Socket) {
socket.handshake.session!.lastSeen = new Date();
socket.handshake.session!.socketID = socket.id;
socket.handshake.session!.save((err: Error) => {
if (err) {
console.log('Error in saving session! => ', err);
}
});
// Now each session has it's socketID!
});
感谢您的帮助,我需要这个。您还可以建议我可以执行此操作的其他方法。
【问题讨论】:
标签: node.js express authentication cookies session-cookies