在Nodejs中,如果cookie被删除,如何获取以前的会话数据

问题描述 投票:0回答:2

如果用户手动或以其他方式删除所有cookie,我想获取之前的会话数据。因为我也在会话和全局中存储一些数据,并且我需要为每个销毁的会话从全局中删除该数据。

node.js express session
2个回答
2
投票

如果用户删除了所有 cookie,那么他就是没有 cookie 的用户,对吧?那么如何区分该用户和其他用户呢?这是一个非常困难的问题,我怀疑是否有可靠的解决方案。

例如,您可能想通过 IP 来识别用户,但 IP 可能会发生变化(动态 IP)。您可能希望通过创建 WebSocket(FlashSocket )连接来识别用户并保持其打开状态,但这仅在用户查看您的页面时才有效(也可能手动关闭)。

所以忘记以前的会议吧。如果您需要清理会话数据,则创建一个 CRON 作业或后台线程(或 Node.JS 中的后台异步作业),这将定期执行此操作。或者您可以只使用被动清理,即实现会话机制,当接近(预定义的)内存限制时,它将自行清理(这应该在创建新会话时触发)。


0
投票

我只是在redis中将会话设置为自动过期,因此随着时间的推移它会自行清理。不幸的是,我忘记了我到底是如何做到这一点的,我认为这是数据库上的一个属性。

当有人注销时,我会销毁会话:

req.session.destroy(function(){
 //session has been destroyed
});
© www.soinside.com 2019 - 2024. All rights reserved.