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