Rails会话之后会发生什么:expire_after时间到了?

sar*_*gas 4 session ruby-on-rails-4

会话是否变为零?更改是否仅在下一个请求中生效?

我想我现在刚问了三个问题......

Nim*_*mir 8

您可以尝试使用类似的设置进行探索:

AppName::Application.config.session_store :cookie_store, key: '_session_key', expire_after: 20.seconds
Run Code Online (Sandbox Code Playgroud)

然后在浏览器中打开开发工具,转到cookies并选择localhostcookie以查看发生的情况.

我发现:

  1. 会话cookie在到期时间后被删除

  2. 任何请求(甚至后台ajax请求计数)都会自动更新cookie(重新设置)的到期时间

  3. 默认情况下,效果将在下一个请求(例如刷新页面)时发生,如果使用典型身份验证(例如has_secure_password_),则应注销用户

我发现文档页面上的最后一条评论ActionController::Base对这个主题非常有帮助