Как отслеживать онлайн/офлайн пользователей в собственном расширении Google Chrome?
Всем привет, я разрабатываю расширение для google chrome и мне нужна функция для отслеживания активности пользователей (онлайн / офлайн). Это необходимо для того, чтобы 1 пользователь мог использовать расширение в течение одного сеанса (если пользователь хочет использовать расширение одновременно на 2 компьютерах, мы должны заблокировать его). Уважаемые Хабрачани, подскажите, как лучше всего сделать проверку активности пользователей?
Пока есть идеи сделать это через запросы AJAX (запросы с определенным интервалом) или через веб-сокеты (сокет io).
Расширение работает следующем образом:
Само расширение осуществляет проверку пользователя и посылает на сервер запрос, который возвращает основной код логики и вшивает его на страницу (через eval).
Да всё очень и очень просто на самом деле, никаких отслеживаний сложных даже и не надо. У вас же в расширении есть авторизация? Ну вот и аннулируйте все предыдущие сессии при входе. Таким образом больше одной сессии в принципе будет невозможно создать.
А если например у пользователя уже активная сессия? То есть он уже использует расширение и вдруг он хочет использовать на другом компьютере то же расширение. Как лучше аннулировать предыдущую сессию, которая была запущена первой? (Авторизации таковой нет, она происходит по токену через запрос при заходе на целевую страницу)
Cloody, проверяйте токен при каждом обмене данными расширения с сервером, если токен в это время залогинился в другом месте и создалась новая сессия, возвращайте ошибку и в расширении обрабатывайте, чтобы оно эту ошибку корректно обрабатывало
Cloody, ну расширение же взаимодействует с сервером? При любом запросе на сервер передавать и токен и сверять его. Можно дополнительно сверять по таймеру, раз в минуту скажем отправлять запрос на верификацию, если не был получен ответ раз 5 подряд, останавливаем работу