Как определить, что юзер сайта неактивен в течение определенного времени?
Здравствуйте!
На сайте, работающем на самописном PHP-движке, требуется разлогинивать юзера автоматически после 15 минут неактивности.
Думал добавить в футер js-скрипт, который условно будет делать запрос на один PHP-обработчик раз в 5 минут и в БД у юзера будет записываться временная метка последней активности. А как понять, что он уже бездействует 15 минут? Писать еще один PHP-скрипт, который по крону будет условно раз в 15 минут пробегать по БД и разлогинивать неактивных пользователей? Не будет ли это слишком большой нагрузкой на сервер?
Сайт локального характера, так что огромного наплыва пользователей нет. Максимум одновременно онлайн может быть не более 50.
Подскажите, как это можно реализовать?
Заранее спасибо
Для правильного вопроса надо знать половину ответа
It depends.
Если у вас регистрация на сессиях, то можно просто задать время жизни сессии.
Если на JWT, то соответствующее время жизни токена обновления.
Если какой-то свой нестандартный вариант, то при запросе проверять время с момента последнего запроса.
Stanislav, А тогда у него сессий вообще не будет, соответственно авторизоваться не получится в принципе. Сам механизм сессий PHP основан на передаче клиенту куки с идентификатором сессии и получении от него этой куки при каждом запросе.
Stanislav, Можно. Но тогда надо и в клиенте самостоятельно сохранять полученный от сервера id сессии и указывать его в запросе и на сервере явно указывать этот id перед открытием сессии и отправлять его клиенту. Если уж всё это писать, то можно озаботиться и самостоятельным контролем срока жизни сессии.