我想使用 devise 来记录用户会话何时超时:timeoutable
.
眼下,:timeoutable
正在按预期工作,并在指定的不活动时间后将用户重定向到登录页面,但除此之外,我们还希望在发生这种情况时进行记录,以帮助优化我们的超时期限。
(显然,除非用户明确注销,否则所有会话都会超时。我们将检查自上次活动以来的时间,以确定这是否是自然超时,或者更有可能是我们设置的超时时间太短的结果。)
是否有我可以挂钩的事件或其他检测会话超时的方法SessionController
?
我没有看到任何类型的钩子,但您可以覆盖 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)