Мы используем PHP и храним данные сессии в memcached. Есть ли способ сделать все сессии недействительными по заданному идентификатору пользователя? Вариант использования: когда пользователь меняет свой пароль, мы выходим из него, однако мы также должны делать недействительными все остальные сеансы под этим идентификатором пользователя.
Это возможно?
Я думаю, что вам придется добавлять проверку на каждый запрос, чтобы убедиться, что пользовательский контекст по-прежнему действителен.
Первой мыслью является создание в бэкэнд-хранилище записи, содержащей метку времени обновления пароля пользователя. Когда пользователь входит в систему, вы можете написать cookie с отметкой времени или сохранить его в сеансе. При последующих запросах / проверках, если дата файла cookie / сеанса новее, чем дата смены пароля, которую он проходит. При изменении пароля дата в бэкэнд-записи устанавливается на текущую метку времени, и следующая проверка завершится неудачно и уничтожит пользовательский сеанс.
Таким образом, в этом контексте фактическая аннулирование не произойдет, пока следующий запрос не будет получен из старого сеанса.
Других решений пока нет …