Rails 是不是提供默认会话超时时间?如果是,它在哪里指定?

Posted

技术标签:

【中文标题】Rails 是不是提供默认会话超时时间?如果是,它在哪里指定?【英文标题】:Does Rails provide default session time-out duration? If yes, where is it specified?Rails 是否提供默认会话超时时间?如果是,它在哪里指定? 【发布时间】:2013-04-19 08:24:48 【问题描述】:

我已经知道如何在 Rails 应用程序中设置过期时间,这在网络上有很好的记录。但我想知道的是rails中会话到期的默认持续时间是多少,如果有,在哪里可以找到它?

【问题讨论】:

可能重复 --> ***.com/questions/5860950/… 【参考方案1】:

Rails 没有默认过期时间。 The method definition for session_store 似乎只有一个默认值:

上线32@session_store = :cookie_store

默认情况下其他配置不存在。因此,:expire_after 没有设置,Rails 的会话没有过期时间除非你为它设置了一个值。

【讨论】:

【参考方案2】:

您可以在初始化文件中配置应用程序的会话信息

config/initializers/session_store.rb

要设置 30 分钟,请尝试以下代码:

 YourApp::Application.config.session_store :cookie_store, 
    :key => '_my_session', 
    :expire_after => 30.minutes

【讨论】:

我知道这一点。但是 Rails 有没有默认的过期时间? 这不能回答问题。【参考方案3】:

根据定义,会话将在浏览器关闭后过期,它们没有超时。 如果您打开 Chrome 开发工具并查看到期日期,那里会显示“会话”而不是日期/时间。

【讨论】:

以上是关于Rails 是不是提供默认会话超时时间?如果是,它在哪里指定?的主要内容,如果未能解决你的问题,请参考以下文章

Rails设置超时立即重定向

PHP会话默认超时[重复]

PHP会话默认超时[重复]

Java EE 网站的默认会话超时是多少?

Rails 会议当前实践

Ruby on Rails 中的会话如何工作?