Задать вопрос

Как в Django насильно разлогинить пользователя?

Всем привет,

ситуация - юзер залогинен на трех компьютерах под одним логином. На одном из них он изменил себе пароль. На двух других он должен быть насильно разлогинен (другими словами, при следующем запросе к сайту он увидит его как анонимный пользователь).

Как это сделать? Есть ли родные способы в Django для этого?
  • Вопрос задан
  • 823 просмотра
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
@kazmiruk
Делается довольно просто: в хеш зашивается поле, к которому сессия должна быть чувствительна. В вашем случае пароль. Получается, что когда пользователь сменит пароль, то все старые сессии станут невалидны автоматом и ничего перебирать не придется.
Ответ написан
Комментировать
AloneCoder
@AloneCoder
[object Object]
Родных способов вроде нет
Сделать это можно по-разному: можно перебирать все сессии, но это неэффективно
можно завести для пользователя поля last_login_date и force_logout_date и сравнивать их
Ответ написан
Комментировать
@softshape Автор вопроса
Гуглеж навел меня на метод update_session_auth_hash() - это не оно, случайно?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы