【问题标题】:Session timeout using Clearance in a Rails app在 Rails 应用程序中使用 Clearance 的会话超时
【发布时间】:2012-05-20 13:38:57
【问题描述】:

我在我的 Rails 应用程序中使用 Clearance 进行身份验证。有谁知道配置会话超时的方法?它在我登录后 5 分钟内将我注销,我似乎找不到任何指定如何设置超时的内容。

【问题讨论】:

    标签: ruby-on-rails ruby timeout clearance


    【解决方案1】:

    查看 rdoc,在 Clearance 配置类上有一个 cookie_expiration 方法。这里是——查看方法的来源:

    默认情况下,它看起来是 1 年:

    def initialize
      @mailer_sender     = 'donotreply@example.com'
      @cookie_expiration = lambda { 1.year.from_now.utc }
    end
    

    所以我会考虑在配置中覆盖它。

    http://rdoc.info:8080/github/thoughtbot/clearance/Clearance/Configuration#cookie_expiration-instance_method

    如果您找不到它,有时您可以在 freenode 上的 Thoughtbot IRC 频道 #thoughtbot 上提问。有时开发人员会在那里闲逛,他们会回答问题。

    【讨论】:

      【解决方案2】:

      当你安装 Clearance 时,我认为它应该添加了一个 config/initializers/clearance.rb 文件。您可以通过使用 cookie_expiration 配置在其中配置会话超时。从他们的文档来看,它可能看起来像这样:

      @example
        Clearance.configure do |config|
          config.mailer_sender     = 'me@example.com'
          config.cookie_expiration = lambda { 2.weeks.from_now.utc }
          config.password_strategy = MyPasswordStrategy
          config.user_model        = MyNamespace::MyUser
        end
      

      因此,只需为 cookie 过期提供一个 lambda,该 lambda 返回一个 Time 对象,该对象会在未来某个时间发生。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-23
        • 2015-01-02
        • 1970-01-01
        • 2019-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多