在nodejs中删除浏览器关闭时的会话

Posted

技术标签:

【中文标题】在nodejs中删除浏览器关闭时的会话【英文标题】:Delete the session on browser close in nodejs 【发布时间】:2012-10-26 13:59:16 【问题描述】:

浏览器关闭时可以删除node js中的session吗?

我想检查用户是否选择了保持登录复选框,然后关闭窗口。他应该要求重新登录。

【问题讨论】:

【参考方案1】:

这是特定于 cookie 的设置:如果您将会话数据存储在仅会话 cookie 中,它会在浏览器关闭时消失。

查看此答案以使用 express 制作浏览器会话 cookie:Node.js/Express.js session management cookie to be session cookie

【讨论】:

【参考方案2】:

您可以在事件“断开连接”上编写自己的会话删除函数

socketServer.sockets.on('connection', function onSocket(client) 
    client.on('disconnect', function() 
        console.log("disconnect");
        // some code
    );
    -----
);

【讨论】:

虽然这是一个潜在有用的解决方案,但它不是可移植的,因为并非所有浏览器都支持 websocket。最好使用 cookie 设置,因此我给了你一个 -1。

以上是关于在nodejs中删除浏览器关闭时的会话的主要内容,如果未能解决你的问题,请参考以下文章

如果用户忘记注销并关闭浏览器,如何删除 Rails 中以前的会话?

关闭会话时未删除移动浏览器(chrome、safari)cookie

关于cookie(会话cookie与持久cookie)

在 PHP 中删除 JavaScript 会话 Cookie [重复]

HTTP协议 ---Cookie

如何在 django 中关闭浏览器上的会话