2013-10-10 4 views
0

мне нужно добавить отчет в моем приложении, сколько времени регистрируется пользователем в.Запись время пользователь вошел в систему с Authlogic

Я знаю, что это не будет точно, потому что, если пользователь закрывает браузер , сессия будет жить около 30 минут.

Но со всеми ограничениями, как узнать, когда истек срок сеанса и записать это время, даже если нет запроса?

ответ

1

Что касается управления сеансом, то способы доступа к нему могут различаться. Но одним из способов, по которым вы, возможно, отслеживаете время, является запись времени в поле базы данных всякий раз, когда пользователь входит в систему. Затем, если пользователь выходит из системы, запишите время выхода из системы. Затем добавьте разницу (время выхода - время входа) в другое общее поле времени. Что касается истечения срока действия сеанса, вы можете предположить, что он истекает через 30 минут. Таким образом, в следующий раз, когда пользователь войдет в систему, если поле «Время выхода из системы» пустое, тогда предположим, что последний блок времени, потраченный, меньше: новое «время входа» - «последнее время входа» или 30 минут ,

+0

Спасибо! В последнем случае я должен сохранить также время «последнего запроса»? Поскольку пользователь может быть зарегистрирован через 2 часа, если он не запрашивает запрос? –

+0

Хорошая точка ... в этом случае вы хотите отслеживать, когда пользователь активен. Возможно, вы можете добавить поле временной метки «последнее действие» и поместить в файл application_controller.rb файл before_action, который обновляет его каждый раз, когда пользователь, зарегистрированный в сети, делает запрос. В таком случае сессии, истекающей период деятельности, будет: Активность Время = Меньше: (Время последней активности + 30 мин - Последнее время входа в систему) или (Последний выход из системы - Последнее время входа в систему) –

 Смежные вопросы

  • Нет связанных вопросов^_^