@YourQuestion

Как организовать выход с личного кабинета на сайте на всех устройствах?

В последнее время на некоторых сайтах в личных кабинетах видим функцию "выйти со всех устройств", те. нажимаем на кнопку и происходит выход из личного кабинета на сайте на всех авторизованных устройствах. Подскажите как возможно реализовать такое(выход в реальном времени)?
P.S.: на первых взгляд можно сделать привязку к базе и делать бинд каждую минуту, но не хотелось бы перегружать сайт частыми запросами.
  • Вопрос задан
  • 2007 просмотров
Решения вопроса 1
Machez
@Machez
Бу!
Обычно на сервере хранят токены авторизации для каждого пользователя. А при выходе со всех устройств удаляют эти ключи по маске.

Пример алгоритма с использованием Redis.

1) При авторизации создается ключ вида auth:[user_id]:[token] = true. Токен - штука уникальная. Например md5(строка + соль).
2) Этот самый token кладется в куку клиенту.
3) Если у клиента есть есть кука с токеном и соответствующий ключ зарегистрирован в Redis - значит на данном устройстве клиент авторизован.
4) При необходимости разлогинить человека на всех устройствах из Redis удаляются все ключи соответствующие маске auth:[user_id]:* и всё.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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