所以我在这里以不同的方式提出了这个问题,但没有得到答案,所以我将尝试重新措辞,因为这似乎是一个非常简单的问题。
我有一个带有基于 cookie 的会话的 Rails 应用程序。默认情况下,它们没有任何 expires_at 时间戳,因此会话 cookie 的范围是“会话”。这是你的香草 Rails 会话的东西。
现在我想创建一个“演示用户”功能,我会在 15 分钟后将用户踢出。为此,我想在 Time.now + 15.minutes 的会话 cookie 上设置 expires_at
session[:expires_at] = Time.now + 15.minutes
现在上面的这段代码确实执行了,但它对 cookie 的范围没有影响。范围仍然是“会话”。如何将范围从“会话”更改为日期时间?
如果我在 production.rb 中将整个应用程序的 Session 配置为
:expire_after => 24.hours
然后它会工作......但问题是我想有选择地控制会话cookie的到期日期。
编辑:事实证明,当我设置 session[:expires_at] 时对 cookie 的范围没有影响的原因是因为后续请求正在破坏会话 cookie 并将其重置回会话。仍然不确定该怎么做。