3

I'm using the restful_authentication plugin for my login page. The problem is that after I log in as a user, I never get logged out until I click on log out. How do I set a session timeout of 15 minutes? For example, after 15 minutes if I go to any page, I should be redirected to the login page.

4

3 回答 3

3

您可以在 rails 2.3 的 config/initializers/session_store.rb 文件中配置会话过期时间。

只需添加以下选项:

:expire_after => 60.minutes

或者,您可以通过在 before_filter 中使用以下内容来更改每个控制器/操作的过期时间:

request.session_options = request.session_options.dup
request.session_options[:expire_after] = 5.minutes
request.session_options.freeze

这些说明位于:http ://squarewheel.pl/posts/3 ,其中还包含一个用于 rails < 2.3 的插件的链接。

于 2009-06-01T02:56:41.837 回答
0

请注意,这只设置 cookie 过期时间,而不是服务器检查的会话过期时间(至少对于我为 rails <2.3 编写的插件)。要实现后者,您必须实现自己的 before_filter 来检查会话中的时间戳,如果时间超过可接受的限制,则将其丢弃。同样,我还没有检查 >=2.3 是否需要这样做

于 2009-06-03T22:57:50.110 回答
0

在您的 application.rb 中:

  before_filter :update_activity_time, :except => [:login, :logout]

   def update_activity_time
     session[:expires_at] = 60.minutes.from_now #default 60
   end
于 2011-06-14T18:40:30.510 回答