使用Devise设置会话长度

jos*_*shs 43 ruby-on-rails devise

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

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

谢谢

Bri*_*ing 78

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

class User < ActiveRecord::Base
  devise :timeoutable, :timeout_in => 15.minutes
Run Code Online (Sandbox Code Playgroud)

您现在还可以动态设置超时.

  • 例如,将其设置为 2 周是否安全? (2认同)

小智 12

使用Rails4,最好遵循的是:

在models/user.rb中:添加:超出现有的设计模块列表.

class User < ActiveRecord::Base
  devise :timeoutable
end
Run Code Online (Sandbox Code Playgroud)

在config/initializers/devise.rb中:设置timeout参数.

Devise.setup do |config|
  config.timeout_in = 3.hours
end
Run Code Online (Sandbox Code Playgroud)


rus*_*ils 8

全球:

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

Devise.setup do |config|
  config.timeout_in = 3.hours
end
Run Code Online (Sandbox Code Playgroud)

也可以动态设置timeout_in选项

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

  def timeout_in
    if self.admin? 
      1.year
    else
      2.days
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

  • 嘿,马安!那很棒!它看起来不错,也可以使用)) (2认同)
  • 是! 除非您想在那倒转时间。最好使具有更多特权的用户更频繁地进行身份验证... (2认同)