Проверка истечения срока действия 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 для получения дополнительной информации (хотя он использует устаревшее соединение, концепция та же).

Другие вопросы по тегам