【问题标题】:Ruby on Rails and restful_authentication pluginRuby on Rails 和 restful_authentication 插件
【发布时间】:2010-10-30 07:43:56
【问题描述】:

我正在为我的登录页面使用 restful_authentication 插件。问题是,在我以用户身份登录后,在单击注销之前我永远不会注销。如何将会话超时设置为 15 分钟?例如,如果我在 15 分钟后转到任何页面,我应该被重定向到登录页面。

【问题讨论】:

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


    【解决方案1】:

    您可以在 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】:

    请注意,这仅设置 cookie 过期时间,而不是服务器检查的会话过期时间(至少对于我为 rails =2.3 是否需要这样做

    【讨论】:

      【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-08
        • 1970-01-01
        • 1970-01-01
        • 2010-11-19
        • 1970-01-01
        • 1970-01-01
        • 2011-10-30
        相关资源
        最近更新 更多