这似乎很简单:我想让我的Rails Active Record会话在两分钟后超时。因此,两分钟后,我希望我的用户必须重新登录。
我只是在本地开发机器上运行rails server
(即WebBrick)。
我知道这与config/initalizers/session_store.rb
中的以下代码有关,但我认为我还没有完全搞清楚:
CodedOn::Application.config.session_store :active_record_store
CodedOn::Application.configure do
config.action_controller.session = {:expire_after => 2.minutes}
end
这似乎无法工作,或者至少我的会话似乎没有超时。我找不到有关Rails 3的资料,以了解如何做到这一点,因为我知道从Rails 2.x开始有很多变化。
可以有人帮我吗?
before_filter
- 即当用户首次进行身份验证时,session[:last_seen]
是如何再次被调用的呢?如果它是一个身份验证的 before_filter,那么它不是只被调用一次 - 在身份验证时吗?我想我试图在我的脑海中弄清楚的是,一旦会话被创建并且用户已登录,我如何检查session[:last_seen]
,以便如果它超过X
分钟,它会强制他们重新登录,而不是在会话最初创建时就这样做。希望这讲得通。 - marcamillionbefore_filter
,或者我必须在每个控制器上传递filter_resource_access
才能强制执行它?我知道如果我使用devise
或其他身份验证 gem,它会为我处理这些事情 - 但是考虑到我正在从头开始编写一个身份验证,这就是我问这些问题的原因。 - marcamillionclass PostsController < ApplicationController
),因此它们会继承before_filter
声明。 - Luke Griffiths