1

当我通过乘客启动项目(乘客启动)并尝试设置 cookie 过期时,我从已经过时的 Web 服务器获取 cookie。

In console:

passenger start

In controller:

cookies[:auth_admin_token] = {
  :value    => 'auth_cookie',
  :path     => '/settings',
  :secure   => false,
  :expires  => 20.minutes.from_now
}

正如我发现 Rails 所述的与时区有关的问题。但在 rails 文档中没有找到有关时区和 cookie 的任何信息。如果我为 expires "240.minutes.from_now" 设置大值,cookie 将起作用。

当我通过“WEBrick”启动项目时,我没有这样的问题

rails s
=> Booting WEBrick
=> Rails 3.0.20 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
4

1 回答 1

2

这是乘客错误“自动生成的日期标题必须在 GMT 中” https://code.google.com/p/phusion-passenger/issues/detail?id=913

错误已在乘客版本 4.0.13 http://blog.phusion.nl/2013/08/15/phusion-passenger-4-0-13-released/中修复

“自动生成的 HTTP 日期标头现在采用 UTC 而不是本地时间。这可能会导致 cookie 的过期时间错误。修复了问题 #913。”

于 2013-08-15T19:13:37.793 回答