2016-12-04 10 views
0

Я научился использовать пакет «client-sessions» в Node.js с помощью Express. Кажется, все работает хорошо. Но мне интересно, есть способ заставить его вызвать функцию, если сеанс истекает?Как узнать, когда истек срок сеанса?

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

Но я не смог найти информацию о том, как это сделать. Думаю ли я об этом неправильно? Если я сохраню все в сеансе, он попытается сохранить все это в файле cookie, не так ли?

благодарит заранее.

+0

Просто сохраните данные в самом объекте сеанса, и все это позаботится о вас. Если вы используете достойный менеджер сеансов, cookie содержит только идентификатор сеанса, а сам сеансовый объект является серверным. – jfriend00

+0

@ jfriend00 - только что проверил это, сохранил некоторую информацию на сессии, а файл cookie отправился с 183B до 10KB. Я думаю, что он сохраняет все в сеансе в cookie. Я использую [client-sessions] (https://www.npmjs.com/package/client-sessions) прямо сейчас. вы бы посоветовали мне искать лучшего менеджера сеансов? –

+0

Экспресс-сессия этого не сделает. – jfriend00

ответ

1

внесении мои комментарии в ответ, так как он, кажется, помогли вам решить вашу проблему ...

Если вы используете менеджер сеансов, как express-session, что только хранит идентификатор сеанса в браузере куки и сохраняет объект сеанса на стороне сервера в хранилище сеансов, то вы можете просто сохранить свои данные непосредственно в объекте сеанса, а когда сессия закончится, диспетчер сеансов просто автоматически очистит сеанс (включая ваши данные в сеансе). Тогда вам не придется беспокоиться о том, когда он истечет, поскольку все просто управляется для вас автоматически.

express-session имеет возможность просматривать заданный сеанс в сеансе store.get(sessionID, callback) где store - это объект хранилища сеансов, который вы используете. Чтобы использовать это, вам необходимо предварительно сохранить идентификатор сеанса для данного пользователя, который вы хотите найти.