Как определить, зарегистрирован ли пользователь в Symfony?

Мне нужно знать, как я могу получить, если в приложении зарегистрирован конкретный пользователь Symfony, есть ли способ получить идентификатор сеанса для текущих зарегистрированных пользователей?

Я пытался с таблицей, когда у меня есть поле с именем is_online и y установить его, когда пользователь входит и выходит из приложения, поэтому у меня возникает проблема, когда пользователь закрывает браузер или когда заканчивается сеанс, поэтому поле is_online оставайся честным. Это причина того, что мне нужен другой способ получить, если пользователь вошел в приложение.

Любой совет будет полезен.

2 ответа

Вы можете отправить ajax-запрос от пользователей, и как только кто-то не отправит запрос, например, в течение 1 минуты, измените его статус на оффлайн Будет хорошей идеей хранить статусы в некотором хранилище значений ключей, например MemCache. Смотрите здесь для деталей.

Создайте поле базы данных как lastonlinetstamp и ping метод в ajax, который вызывает сервис с одним и тем же сеансом каждую минуту. Затем позвольте службе ping обновить lastonlinetstamp, Если это значение старше 1 минуты, вы знаете, что пользователь не в сети. Но: это увеличит количество запросов к вашему серверу.

Другие вопросы по тегам