Сделайте недействительными все сеансы по идентификатору пользователя с переполнением стека

Мы используем PHP и храним данные сессии в memcached. Есть ли способ сделать все сессии недействительными по заданному идентификатору пользователя? Вариант использования: когда пользователь меняет свой пароль, мы выходим из него, однако мы также должны делать недействительными все остальные сеансы под этим идентификатором пользователя.

Это возможно?

2

Решение

Я думаю, что вам придется добавлять проверку на каждый запрос, чтобы убедиться, что пользовательский контекст по-прежнему действителен.

Первой мыслью является создание в бэкэнд-хранилище записи, содержащей метку времени обновления пароля пользователя. Когда пользователь входит в систему, вы можете написать cookie с отметкой времени или сохранить его в сеансе. При последующих запросах / проверках, если дата файла cookie / сеанса новее, чем дата смены пароля, которую он проходит. При изменении пароля дата в бэкэнд-записи устанавливается на текущую метку времени, и следующая проверка завершится неудачно и уничтожит пользовательский сеанс.

Таким образом, в этом контексте фактическая аннулирование не произойдет, пока следующий запрос не будет получен из старого сеанса.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]