【发布时间】:2012-05-20 13:38:57
【问题描述】:
我在我的 Rails 应用程序中使用 Clearance 进行身份验证。有谁知道配置会话超时的方法?它在我登录后 5 分钟内将我注销,我似乎找不到任何指定如何设置超时的内容。
【问题讨论】:
标签: ruby-on-rails ruby timeout clearance
我在我的 Rails 应用程序中使用 Clearance 进行身份验证。有谁知道配置会话超时的方法?它在我登录后 5 分钟内将我注销,我似乎找不到任何指定如何设置超时的内容。
【问题讨论】:
标签: ruby-on-rails ruby timeout clearance
查看 rdoc,在 Clearance 配置类上有一个 cookie_expiration 方法。这里是——查看方法的来源:
默认情况下,它看起来是 1 年:
def initialize
@mailer_sender = 'donotreply@example.com'
@cookie_expiration = lambda { 1.year.from_now.utc }
end
所以我会考虑在配置中覆盖它。
如果您找不到它,有时您可以在 freenode 上的 Thoughtbot IRC 频道 #thoughtbot 上提问。有时开发人员会在那里闲逛,他们会回答问题。
【讨论】:
当你安装 Clearance 时,我认为它应该添加了一个 config/initializers/clearance.rb 文件。您可以通过使用 cookie_expiration 配置在其中配置会话超时。从他们的文档来看,它可能看起来像这样:
@example
Clearance.configure do |config|
config.mailer_sender = 'me@example.com'
config.cookie_expiration = lambda { 2.weeks.from_now.utc }
config.password_strategy = MyPasswordStrategy
config.user_model = MyNamespace::MyUser
end
因此,只需为 cookie 过期提供一个 lambda,该 lambda 返回一个 Time 对象,该对象会在未来某个时间发生。
【讨论】: