Как закрыть отдельные сеансы с помощью экспресс-сеанса node.js?

Я использую модуль экспресс-сеанса для обработки сеанса в моем приложении express.js

Мое приложение express.js создает сеанс для прав пользователя и администратора.

У меня есть req.session.user и req.session.admin

У меня проблема в том, что я не знаю, как закрыть 1 сеанс, а не другой.

Вы можете закрыть сеанс с помощью этой команды: req.session.destroy ()

Но это разрушает оба сеанса. Я безуспешно пытался использовать req.session.user.destroy (). Это недействительная команда.

Итак, как я могу уничтожить одну сессию, а не другую?


person Wee Wee    schedule 19.05.2016    source источник


Ответы (3)


В обычной конфигурации для каждого браузера на сайте существует только один объект сеанса. Этот объект сеанса может иметь несколько свойств, но существует только один сеанс, поэтому вы не уничтожаете сеанс только для удаления свойства. Кроме того, сеанс представляет собой простой объект Javascript, поэтому вы можете добавлять / удалять из него свойства.

Поскольку вы говорите об «отдельных сессиях», не совсем понятно, чего вы пытаетесь достичь. Вы можете удалить отдельные свойства из сеанса с помощью оператора delete, как показано ниже:

delete req.session.admin;

Это удалит свойство .admin из объекта сеанса, но оставит сам сеанс и другие свойства в нем нетронутыми.

person jfriend00    schedule 19.05.2016

может вам помочь -> удалить req.session.user

person KibGzr    schedule 19.05.2016

Вы можете попробовать отключить свойство сеанса следующим образом:

delete req.session.username;
//OR
req.session.username=null;
person Bablu Ahmed    schedule 11.11.2018