向Web客户端广播快速会话到期

时间:2016-02-17 10:47:53

标签: node.js express

我正在使用express.session来设置会话的到期时间。由于服务器和客户端之间存在会话维护,节点服务器是否可以向客户端广播以通知客户端会话将到期(例如:到期前5分钟)?

1)在节点服务器和客户端之间建立会话。服务器中的会话存储在mongodb中。
2)当会话将在5分钟前过期时,服务器向客户端发送通知 3)客户端浏览器向用户提示警告框。

app.use(express.session({
    cookie  : { maxAge  : new Date(Date.now() + (60 * 1000 * 30)) }
}));

1 个答案:

答案 0 :(得分:0)

我认为一个好方法是尝试使用socket.io在客户端每1分钟发出一次'checkSessionExpiration'调用。

setInterval(function() {
    socket.emit('checkSessionExpiration');
}, 60 * 1000);

socket.on('sessionAlert', function ()) {
    alert('session will expire in ...');
}

在服务器端,您可以检查会话是否即将过期。

socket.on('checkSessionExpiration', function () {
    // check the session here and emit a sessionAlert

    // if session will expire soon
    socket.emit('sessionAlert');
}