当我按乘客(乘客开始)启动项目并尝试设置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
答案 0 :(得分: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。”