Проверка истечения срока действия Express Session
Скажем, экспресс-сеансы узла сохраняются в приложении (то есть они не обязательно доступны из входящих req
), как проверить, не истек ли какой-либо из этих сеансов? Что такое правильный тест?
2 ответа
Скажем, вы сохранили имя пользователя в сеансе. req.session.name='pankti'
когда вы пытаетесь получить его, и если он не определен, срок его действия истекает.req.session.name == 'undefined'
Нет событий на сеанс истек (к сожалению...). Однако, если ваши сеансы сохраняются в хранилище сеансов, вы можете реализовать setTimeout() при создании сеанса и заставить его инициировать событие, когда сеанс истекает или вот-вот истечет.
Пример:
//Lets say your session's ttl is 600 seconds
//On session creation :
setTimeout(function(){
//send event
},600000);
В зависимости от того, какая информация хранится в вашем хранилище сеансов, вы можете использовать идентификатор пользователя или идентификатор сеанса, или что-либо еще, что вы хотите.
Вы можете взглянуть на этот вопрос SO для получения дополнительной информации (хотя он использует устаревшее соединение, концепция та же).