Как я могу сделать что-то прямо перед истечением сессии (уничтожить)
Привет я пользуюсь expressjs
для моего веб-приложения, и я использую session
Middleware, мой вопрос в том, как я могу сделать что-то прямо перед истечением сессии?
Например, я сохраняю что-то в сеансе и устанавливаю req.session.cookie.maxAge
до 60000(1 минута), когда тайм-аут сеанса, я хочу сохранить данные в сеансе на диск, как я могу это сделать? Я проверил API и destroy
функция только поддержка callback
...
Спасибо!
1 ответ
Предполагая, что вы используете connect-session
нет ничего, как событие истечения сеанса.
Сессии истекают либо:
- на клиенте (когда cookie устаревает). Нет никакого способа узнать об этом, пока не будет сделан запрос, поэтому существует опасность, что событие никогда не сработает.
- в хранилище сессий, обычно используя некоторую форму времени жизни. Не все хранилища сеансов поддерживают события, поэтому вообще нельзя делать уведомления.
Однако вы можете попробовать выполнить свою собственную проверку, используя setTimeout()
- по истечении этого времени проверьте, достаточно ли близка дата истечения сеанса к настоящему моменту, и сделайте все, что вам нужно.