【发布时间】:2014-01-22 08:38:41
【问题描述】:
使用Rails 4.0.0 和Ruby ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux] 似乎无法解析Set-Cookie 标头的expires 属性。
HTTP Response
< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Set-Cookie: auth=YWRtaW46MTM5MDI5NzA4MzNjk3MjZjNWI1N2NjMjQzMjE2MjJlYjpBQklRVU8;
Expires=Wed, 23-Jan-2014 09:38:02 GMT; Path=/api; HttpOnly
< Set-Cookie: JSESSIONID=5AF33D5F3ED6741038E14202935A0AD5.node1; Path=/api/; HttpOnly
在控制器输出中记录cookies object:
{"auth"=>"YWRtaW46MTM5MDI5NzA4MzNjk3MjZjNWI1N2NjMjQzMjE2MjJlYjpBQklRVU8", "Expires"=>"Wed", "Path"=>"%2Fapi%2F", "JSESSIONID"=>"4F9344E3A75554E26206FD32F1793AD5.node1"}
这里我看到了两个问题。
- 属性的解析只输出“Wed”
- JSESSIONID cookie 缺少路径
我在Rails issues 和谷歌搜索中找不到任何东西。我也一直在查看文档,但找不到与此问题相关的任何内容。
所以我认为我可能忽略或遗漏了一个配置属性来明确告诉Rails Expires 属性格式。
【问题讨论】:
-
这不是 Rails 问题。
CGI::Cookie#parse是个破坏者。目前正在尝试理解,WTP。 -
好像是well-known problem,没人关心。不过,我建议您手动解析它。
-
@mudasobwa 谢谢,我会看看怎么做。
标签: ruby-on-rails ruby cookies ruby-on-rails-4 ruby-2.0