Экспресс-сессия: завершить сессию на вкладке / закрыть
Мне нужно прекратить сеанс пользователя или выйти из системы, когда они закрывают браузер или вкладку. Ниже приведен код, реализованный для поддержки сеанса:
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, но это не помогает.
1 ответ
Вы должны обработчик onclose
событие пользователя клиента, затем вызовите http-запрос, чтобы уничтожить сеанс клиента на стороне сервера.
Сторона клиента:
$(window).unload(function () {
$.get('/session/destroy');
});
Сторона сервера:
app.get('/session/destroy', function(req, res) {
req.session.destroy();
res.status(200).send('ok');
});