【问题标题】:rails 3.1, devise gem, :timeoutable is not working, why?rails 3.1,devise gem,:timeoutable 不起作用,为什么?
【发布时间】:2011-11-30 19:25:51
【问题描述】:

我正在尝试使用自动退出功能,

这是我的模型:

class Student < ActiveRecord::Base

  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable, :timeoutable

  def timeout
      3.seconds
  end
end

这里是 routes.rb:

  devise_for :students do get '/students/sign_out' => 'students/sessions#destroy' end

我登录,然后等待 5 秒,此时,学生会话应该过期,但是,如果要跳转到任何其他会话 受保护的页面没有重定向回登录表单,这意味着会话仍然处于活动状态。

我有什么遗漏吗?我要检查什么?

谢谢, 满怀希望

【问题讨论】:

    标签: ruby-on-rails-3.1 devise


    【解决方案1】:

    devise wiki 上有不正确的信息。正确的方法是timeout_in

    我已经修复了 wiki 页面 https://github.com/plataformatec/devise/wiki/How-To:-Add-timeout_in-value-dynamically

    【讨论】:

    • 我已经升级到Devise 1.5.2,但是,自动注销仍然不起作用,我现在应该检查什么??我将此添加到学生模型中: def timeout_in 2.seconds end def timeout 2.seconds end 但是,仍然无法正常工作,我尝试使用 RubyMine 在上述方法中设置一个断点,但是从未达到。请问有什么想法吗?
    • 我找到了解决方案,config.timeout_in 在 config/initializers 文件夹中的 devise.rb 文件中被注释我认为添加 :timeoutable 是我所要做的,我认为 devise.rb 在config/initializers 应该添加到文档中,除了谈论 :timeoutable 之外,这对像我这样的 RoR 新手很有帮助!
    【解决方案2】:

    我找到了解决方案, config.timeout_in 在 config/initializers 文件夹的 devise.rb 文件中被注释

    我认为添加 :timeoutable 是我所要做的,我认为除了谈论 :timeoutable 之外,还应该将 config/initializers 中的 devise.rb 添加到文档中,这对 RoR 新手会有帮助。

    【讨论】:

    • 不确定这是否是答案。在我的测试应用程序 (github.com/rodrigoflores/Testing-Timeout/blob/master/config/…) 上,我没有触摸这个文件并且一切正常。但我很高兴你的问题得到了解决:)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多