@Evgeniuster

Проверка на множественные авторизации под одним логином. Как?

Здравствуйте!
Есть самописный сайт с платным просмотром видео.
Как запретить несколько авторизаций с разных компов под одним логином?

Перелопатил интернеты, один из вариантов реализации следующий: при авторизации записываем тайм-штамп в БД и в переменную, на закрытой странице регулярно проверяем соответствие этих штампов и при различии разлогиниваем первого пользователя. Т.е. если под этим логином зайдет еще пользователь, то в БД тайм-штамп перепишется и первого пользователя выкинет.
Насколько я понимаю это создаст нагрузку на БД, но как я понял не критичную. Одновременно пользователей будет до 100.

Теперь вопросы.
Как сделать проверку тайм-штампов раз в минуту например? Покажите кусок кода, а то не могу понять куда копать дальше. Часть кода именно которая запускает запрос в БД регулярно и сравнение. Сам запрос и сравнение сделать могу.
Как разлогинить пользователя? Не просто разлогинить, а принудительно перекинуть на другую страницу или обновить текущую, т.к. даже если сделать логаут видео будет все равно проигрываться. Т.е. если тайм-штампы различаются, убиваем сессию и принудительно перегружаем страницу, а после перезагрузки и без сессии контент уже будет недоступен.

И вопрос по определению пользователя онлайн. Когда он двигает мышкой, переходит по ссылкам и т.д., тут все понятно, в js эти обработчики есть. А если он смотрит видео? Т.е. мышь не активна, клавиатура не активна. Активна только вкладка и открыт браузер (или браузер свернут вниз или открыта другая вкладка, но браузер не закрыт). Как определить, что пользователь все еще на сайте?
  • Вопрос задан
  • 411 просмотров
Пригласить эксперта
Ответы на вопрос 1
edli007
@edli007
full stack, team lead
Устанавливваете сокет, если под этим логином логинятся, шлете по сокету команду в JS на разлогин.
А Алексей Дугнист на кол посадить, за "ajax запрос раз в минуту".
Ответ написан
Ваш ответ на вопрос

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

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