Вопрос по ruby-on-rails, ruby-on-rails-3, ruby, session – Определить, когда истекает сессия разработки

4

Я хотел бы записать, когда время сеанса пользователя истекло, используя devise и:timeoutable.

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

(Очевидно, что для всех сеансов истечет время, если пользователь явно не выйдет из системы. Мы проверим время с момента последнего действия, чтобы определить, является ли это естественным тайм-аутом или, скорее, результатом того, что мы установили слишком короткий период тайм-аута.)

Есть ли событие, к которому я могу подключиться, или другой способ определения времени ожидания сеанса вSessionController?

Ваш Ответ

2   ответа
1

но вы могли бы просто переопределить код в модуле timeutable, который используется devise:

module Devise
  module Models
    module Timeoutable
      def timedout?(last_access)
        #  your custom code goes into this method
        return false if remember_exists_and_not_expired?
        !timeout_in.nil? && last_access && last_access <= timeout_in.ago
      end
    end
  end
end
0

что вам нужно зарегистрировать время, когда пользователь нажимает кнопку «Выйти». в явном виде. Так как:timeoutable имеет период времени по умолчанию, после которого сеанс пользователя автоматически истекает.

Вы можете сделать запись & quot; выйти из системы & quot; деятельность по созданиюSessions_Controller который наследует отDevise::SessionsController, После регистрации текущего времени не забудьте сделатьsuper.

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