Как я могу сделать что-то прямо перед истечением сессии (уничтожить)

Привет я пользуюсь expressjs для моего веб-приложения, и я использую session Middleware, мой вопрос в том, как я могу сделать что-то прямо перед истечением сессии?

Например, я сохраняю что-то в сеансе и устанавливаю req.session.cookie.maxAge до 60000(1 минута), когда тайм-аут сеанса, я хочу сохранить данные в сеансе на диск, как я могу это сделать? Я проверил API и destroy функция только поддержка callback...

Спасибо!

1 ответ

Предполагая, что вы используете connect-session нет ничего, как событие истечения сеанса.

Сессии истекают либо:

  • на клиенте (когда cookie устаревает). Нет никакого способа узнать об этом, пока не будет сделан запрос, поэтому существует опасность, что событие никогда не сработает.
  • в хранилище сессий, обычно используя некоторую форму времени жизни. Не все хранилища сеансов поддерживают события, поэтому вообще нельзя делать уведомления.

Однако вы можете попробовать выполнить свою собственную проверку, используя setTimeout() - по истечении этого времени проверьте, достаточно ли близка дата истечения сеанса к настоящему моменту, и сделайте все, что вам нужно.

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