Придумать выход - PullRequest
1 голос
/ 09 июня 2011

в прошлый раз я задавал этот вопрос, который меня неправильно поняли. Итак:

В моем приложении на Rails3 я использую Devise для аутентификации. У меня есть требование, согласно которому каждый пользователь может войти в систему только из одного браузера. Это означает, что если пользователь A вошел в систему (например, в FF), а затем с другого компьютера или из другого браузера (например, Chrome) поступил запрос на вход в систему пользователя A, первый должен выйти из системы.

Я обнаружил, что могу переопределить SessionController и его метод create. Однако я не вижу способа проверить, вошел ли пользователь с данным адресом электронной почты (params [: email]) в данный момент, более того, я не знаю, какой метод мне следует вызвать для уничтожения этого сеанса пользователя.

Ответы [ 2 ]

1 голос
/ 10 июня 2011

Я бы просто сохранил временную метку для каждой загрузки страницы в сеансе. Сравните это в before_filter с полем last_seen пользователя. Если последний раз пользователь видел после отметки времени сеанса, уничтожьте сеанс пользователя.

0 голосов
/ 09 июня 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...