【发布时间】:2010-10-30 07:43:56
【问题描述】:
我正在为我的登录页面使用 restful_authentication 插件。问题是,在我以用户身份登录后,在单击注销之前我永远不会注销。如何将会话超时设置为 15 分钟?例如,如果我在 15 分钟后转到任何页面,我应该被重定向到登录页面。
【问题讨论】:
标签: ruby-on-rails login ruby-on-rails-plugins restful-authentication
我正在为我的登录页面使用 restful_authentication 插件。问题是,在我以用户身份登录后,在单击注销之前我永远不会注销。如何将会话超时设置为 15 分钟?例如,如果我在 15 分钟后转到任何页面,我应该被重定向到登录页面。
【问题讨论】:
标签: ruby-on-rails login ruby-on-rails-plugins restful-authentication
您可以在 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
【讨论】:
请注意,这仅设置 cookie 过期时间,而不是服务器检查的会话过期时间(至少对于我为 rails =2.3 是否需要这样做
【讨论】:
在您的 application.rb 中:
before_filter :update_activity_time, :except => [:login, :logout]
def update_activity_time
session[:expires_at] = 60.minutes.from_now #default 60
end
【讨论】: