Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cookies 凤凰框架:set";“到期”;响应cookie的属性_Cookies_Elixir_Phoenix Framework - Fatal编程技术网

Cookies 凤凰框架:set";“到期”;响应cookie的属性

Cookies 凤凰框架:set";“到期”;响应cookie的属性,cookies,elixir,phoenix-framework,Cookies,Elixir,Phoenix Framework,我正在使用Phoenix1.2.1和Elixir1.3.4 我需要设置响应cookie的属性。 我可以不使用Max Age属性 不幸的是,该函数不支持expires选项。事实上,即使我可以在控制器中得到类似的东西: conn.resp_cookies["my_cookie_name"] => %{expires: "Tue, 17-Oct-2017 02:24:24 GMT", path: "/", value: "fo

我正在使用Phoenix
1.2.1
和Elixir
1.3.4

我需要设置响应cookie的属性。
我可以不使用
Max Age
属性

不幸的是,该函数不支持
expires
选项。事实上,即使我可以在控制器中得到类似的东西:

conn.resp_cookies["my_cookie_name"]
=> %{expires: "Tue, 17-Oct-2017 02:24:24 GMT", path: "/", value: "foo"}
expires
值将被忽略,并且不会在
Set Cookie
响应头中返回

我想我可以直接设置
set Cookie
头,但我不能使用,因为它显然覆盖了值并确保了键的唯一性,如果我尝试为不同的Cookie设置多个
set Cookie
头,它将不起作用

我错过了什么明显的东西吗?是否有我尚未找到的特定函数?
这是预期的行为(如果是,为什么?)还是我做错了什么

更新 我已经了解了cookies是如何编码的,所以看起来我首先必须将过期时间转换为
Max Age
值,然后Plug将它们转换回来。听起来不是最有效的方法


有什么众所周知的方法可以解决这个问题吗?

已经有了一个有效的解决方案,解决了
Plug.Conn.put\u resp\u header/3
将覆盖已设置的头的问题

def prepend_response_header(conn, key, value) do
  %{conn | resp_headers: [{key, value} | conn.resp_headers]}
end
这将与Plug.Conn.put_resp_header/3类似,但允许多次设置相同的header