如何使用设计配置超时?

use*_*579 6 ruby-on-rails devise

模型:

devise :database_authenticatable, :registerable,:timeoutable, :recoverable, :rememberable, :trackable, :validatable,:timeout_in => 10.seconds
Run Code Online (Sandbox Code Playgroud)

development.rb:

config.timeout_in = 10.seconds
Run Code Online (Sandbox Code Playgroud)

devise.rb:

config.timeout_in = 10.seconds
Run Code Online (Sandbox Code Playgroud)

sim*_*ley 5

您是否希望页面刷新并再次显示登录页面?如果是这样,那不是可超时功能的工作原理.如果您希望在刷新时向您显示登录页面,请从模型中删除超时部分,并将以下内容放在devise.rb NOT development.rb中.不要忘记重启rails服务器.

config.timeout_in = 1.hour
Run Code Online (Sandbox Code Playgroud)

这是在色器件维基所有记录在这里

另外,我不确定10秒后面的逻辑?似乎有点太短了.如果它仍然不起作用,增加到(例如)五分钟并进行测试.


rus*_*ils 5

还可以动态设置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)