5

在使用timeoutableDevise 模块时,如何确定当前用户的会话将过期多长时间?目标是在所有响应中包含此值,以便客户端脚本可以使用它。我收集到 Devise 内部使用 Warden 进行身份验证,但我还没有找到任何解释如何将会话到期时间拉出 Warden 深度的东西。

4

3 回答 3

10

这是您的操作方法:

class User < ActiveRecord::Base
  devise :authenticatable, :timeoutable, :validatable, :timeout_in => 20.minutes
end
于 2013-05-22T01:04:22.457 回答
8

看起来你可以像 Benjamin Tan 所说的那样把它放在模型中,或者你可以把它放在config/initializers/devise.rb

# ==> Configuration for :timeoutable
# The time you want to timeout the user session without activity. After this
# time the user will be asked for credentials again. Default is 30 minutes.
# config.timeout_in = 30.minutes

请参阅此 StackOverflow 问题: 使用 Devise 设置会话长度

于 2013-10-09T23:14:18.353 回答
1

对于 Rails 4:

配置/初始化程序/devise.rb

  if Rails.env.production?
    config.timeout_in = 30.minutes
  else
    config.timeout_in = 7.days
  end

用户.rb

class User < ActiveRecord::Base
  devise :timeoutable
end
于 2016-01-20T20:33:56.420 回答