Cookies 凤凰框架:set";“到期”;响应cookie的属性
我正在使用PhoenixCookies 凤凰框架: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
1.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: "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