Node.js 快速会话:在选项卡/浏览器关闭时终止会话

Node.js 快速会话:在选项卡/浏览器关闭时终止会话,node.js,passport-local,express-session,node-redis,Node.js,Passport Local,Express Session,Node Redis,我需要在用户关闭浏览器或选项卡时终止用户会话或注销用户。 以下是为维护会话而实现的代码: app.use(session({ store: new RedisStore({ url: REDIS_CONNECTION_URL, }), secret: 'COOKIE_SECRET', name: 'COOKIE_NAME', resave: true, saveUninitialized: false, rolling: true, cookie: {

我需要在用户关闭浏览器或选项卡时终止用户会话或注销用户。 以下是为维护会话而实现的代码:

app.use(session({
  store: new RedisStore({
    url: REDIS_CONNECTION_URL,
  }),
  secret: 'COOKIE_SECRET', 
  name: 'COOKIE_NAME',
  resave: true, 
  saveUninitialized: false,
  rolling: true,
  cookie: {
    path: '/',
    httpOnly: true,
    maxAge: 'COOKIE_TIMEOUT',
  },
}));

我已尝试将cookie.expires设置为true,但没有任何帮助。

您必须处理客户端用户的
onclose
事件,然后调用http请求来销毁服务器端的客户端会话

客户端:

$(window).unload(function () { 
  $.get('/session/destroy');
});
服务器端:

app.get('/session/destroy', function(req, res) {
    req.session.destroy();
    res.status(200).send('ok');
});

根据文档,即使在重新加载页面时也会触发卸载事件,这对于me@Sujit答案很简单:否-浏览器的安全模型不允许您明确检测用户选择以何种方式离开您的页面(刷新/关闭/内部链接/外部链接)。这篇文章也许对你有帮助