使用Devise设置会话长度

时间:2011-02-01 19:53:10

标签: ruby-on-rails devise

我的会话设计在1-3小时不使用后设置超时(不确定确切多长时间)。我该如何调整呢?

我查看了文档,似乎找不到这个设置。

由于

3 个答案:

答案 0 :(得分:74)

查看config / initializers / devise.rb。有很多配置设置,包括config.timeout_in。我的版本默认为30分钟。您也可以在模型上设置它:

class User < ActiveRecord::Base
  devise :timeoutable, :timeout_in => 15.minutes

您现在也可以set the timeout dynamically

答案 1 :(得分:12)

使用Rails4,最好遵循的是:

在models / user.rb中:将:timeoutable 添加到现有的设计模块列表中。

class User < ActiveRecord::Base
  devise :timeoutable
end

在config / initializers / devise.rb中:设置超时参数。

Devise.setup do |config|
  config.timeout_in = 3.hours
end

答案 2 :(得分:5)

全局:

class User < ActiveRecord::Base
  devise (...), :timeoutable
end

Devise.setup do |config|
  config.timeout_in = 3.hours
end

也可以动态设置timeout_in选项

class User < ActiveRecord::Base
  devise (...), :timeoutable

  def timeout_in
    if self.admin? 
      1.year
    else
      2.days
    end
  end
end