Ruby on Rails和restful_authentication插件

时间:2009-06-01 02:35:38

标签: ruby-on-rails login ruby-on-rails-plugins restful-authentication

我正在使用restful_authentication插件登录我的登录页面。问题是我以用户身份登录后,在点击退出之前我从未退出。如何设置15分钟的会话超时?例如,如果我转到任何页面15分钟后,我应该被重定向到登录页面。

3 个答案:

答案 0 :(得分:3)

您可以在rails 2.3中的config / intializers / 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。

答案 1 :(得分:0)

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

答案 2 :(得分: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