由于格式,Set-Cookie'到期'属性解析错误

时间:2014-01-22 08:38:42

标签: ruby-on-rails ruby cookies ruby-on-rails-4 ruby-2.0

使用Rails 4.0.0Ruby ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]似乎无法解析expires标题的Set-Cookie属性。

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找不到任何内容并使用Google搜索。我一直在查看文档,但我找不到与此问题相关的内容。

所以我认为我可能会忽略或缺少配置属性,以明确说明Rails Expires属性格式。

1 个答案:

答案 0 :(得分:0)

如果你想解析cookie,这段代码可能有所帮助。

out = "Expires=Wed, 23-Jan-2014 09:38:02 GMT; Path=/api; HttpOnly"
out.split(';').map { |c| c.split('=') }.inject({}) { |result, element|     result[element.first] = element.last;  result }