На моем сайте мне нужна форма, в которой администратор организации может сбросить пароль пользователя. В идеале, когда это сбрасывается, я хотел бы удалить все распознанные сессии для этого пользователя из моего RedisStore, в котором хранятся данные сеанса для экспресс-регистрации и паспорта. Кто-нибудь понял способ сделать это?Очистить все сеансы для одного пользователя
0
A
ответ
0
Вы можете быстро найти элементы по ключу из Redis, но поскольку данные, необходимые для идентификации правильных сеансов, находятся в значениях, которые вам нужно пройти через все ключи и посмотреть, какие из них принадлежат данному пользователю.
Вы можете хранить идентификаторы сеансов для заданий по имени пользователя при входе в систему, а затем, когда вам нужно удалить сеанс, вы просто получите ключи из списка и удалите их, а затем удалите список.
var client = redis.createClient();
// Add the session ID to a set (if not there already)
passport.use(new LocalStrategy({passReqToCallback: true}, function (req, username, password, cb) {
// Do normal login stuff first.
// RedisStore adds 'sess:' to session ID when making it a key
client.sadd("sessions:" + user.username, "sess:" + req.session.id);
cb(null, user);
}));
Затем удалить сеансы:
var deleteSessions = function(username, cb) {
client.smembers("sessions:" + username, function(err, sessionIds) {
if (sessionIds.length === 0) return cb();
// Delete all sessions
client.del.apply(client, sessionIds);
// Delete the set containing now deleted session IDs
client.del("sessions:" + username);
cb();
});
};
Смежные вопросы
- 1. Devise: Как истечь все сеансы одного пользователя?
- 2. Очистить все сеансы в Rails 5
- 3. Как я могу очистить все сеансы рельсов?
- 4. очистить все твиты пользователя
- 5. как очистить сеансы
- 6. Django 1.7 - как очистить сеансы одного пользователя, чтобы разрешить доступ к приложению только с одной вкладки?
- 7. Могу ли я истекать все сеансы пользователя?
- 8. Весенняя безопасность, как истечь все сеансы пользователя
- 9. Как закрыть все сеансы для пользователя в Symfony 2.7?
- 10. Как убить все активные и неактивные сеансы оракула для пользователя
- 11. ASP.Net Identity выписывает все сеансы
- 12. Есть ли способ удалить все сеансы/очистить все идентификаторы на одном и том же языке?
- 13. Пользовательские сеансы пользователя
- 14. Запретить все для всех агентов пользователя, кроме одного агента пользователя?
- 15. Одиночество одного пользователя одного пользователя (все объекты схемы) другому пользователю
- 16. Запросить сеансы пользователя в Windows
- 17. уничтожить все сеансы, но один
- 18. Параллельные сеансы для пользователя в HIPPO CMS
- 19. Как сеансы идентифицированы для пользователя на сервере
- 20. Недействить все сеансы с помощью идентификатора пользователя с помощью PHP
- 21. NHibernate - как обрабатывать сеансы пользователя
- 22. будет вызываться application_end, когда все сеансы пользователя заканчиваются?
- 23. Laravel 5 Уничтожьте все сеансы пользователя и выйдите из системы
- 24. Максимальные сеансы пользователя для каждого пользователя - apache shiro
- 25. сеансы пользователя с архитектурой DAL
- 26. php session_destroy все очистить все сеансы, за исключением того, что работает код
- 27. iOS - Поддержка нескольких устройств для одного пользователя?
- 28. Как отключить все сеансы отладки?
- 29. PHP Session отключает все сеансы
- 30. Утилита: иметь несколько контроллеров, обрабатывающих сеансы пользователя