Поле "active" используется, чтобы вы могли включить/отключить возможность входа в систему. Если вы посмотрите в базе данных, вы увидите, что все ваши пользователи, которых вы создали, имеют «active = 1" . В этом поле не указывается, вошел ли пользователь в систему или нет. Единственное поле, которое может дать вам некоторые указания, - это поле «last_login», которое сообщает вам, когда они в последний раз вошли в систему. Однако это не означает, что они в настоящее время вошли в систему (в основном вы хотите знать, если они все еще есть активная сессия, и нет никакого способа узнать это, так как вы не на ПК этого пользователя).
Единственный способ, которым я знаю, чтобы более точно отслеживать, если пользователь в настоящее время вошел в систему, заключается в том, чтобы иметь базу данных отслеживать, когда последний раз, когда пользователь обращался к любой странице. Если в последний раз, когда пользователь обратился к странице слишком давно, вы знаете, что пользователь больше не вошел в систему. Я бы не рекомендовал этот подход, так как по существу есть запись базы данных для каждого запроса/обновления на вашем сайте этим пользователь. Это может быть проблематично для загрузки базы данных/сервера, особенно если вы заняты пользователями.
Итак, какие у вас более разумные варианты выбора?
- Просто зайдите на последнего входа в систему, чтобы получить некоторое представление о том, кто вошел в систему в.
- Побегайте pre-system or pre-controller hook обновить таблицу пользователя, если пользователь все еще вошли в систему, но писать об этом в базе данных реже, возможно, в час (+ несколько случайных минут, чтобы разойтись, пишет немного больше). Вам нужно будет добавить новое поле в таблицу пользователя для отслеживания этого.
- Google Analytics приблизительно соответствует числу активных пользователей на вашем сайте. Однако это дает вам общее представление о том, кто эти пользователи на самом деле.
Обновлен мой ответ еще немного, чтобы дать вам еще несколько вариантов для рассмотрения. – prograhammer