为什么我无法设置多个 cookie

我正在尝试设置多个 cookie,但没有成功:

if type(ngx.header["Set-Cookie"]) ~= "table" then
    ngx.header["Set-Cookie"] = {}
end
table.insert(ngx.header["Set-Cookie"], "Cookie1=abc; Path=/")
table.insert(ngx.header["Set-Cookie"], "Cookie2=def; Path=/")
table.insert(ngx.header["Set-Cookie"], "Cookie3=ghi; Path=/")

在客户端中我没有收到任何 cookie。

点赞
用户6249022
用户6249022

ngx.header["Set-Cookie"] 是一个特殊的表格,每次修改时必须重新分配一个新的表格(对其插入或删除的元素不会影响将发送给客户端的 Cookie):

如果 ngx.header [“Set-Cookie”] 的类型为 “table”。那么
ngx.header["Set-Cookie"] = { "AnotherCookieValue = abc; Path = /", unpack(ngx.header["Set-Cookie"])}
否则,
ngx.header["Set-Cookie"] = { "AnotherCookieValue = abc; Path = /", ngx.header["Set-Cookie"]}
2017-05-17 06:13:56
用户2060502
用户2060502

你可以使用 https://github.com/cloudflare/lua-resty-cookie

local ck = require "resty.cookie"
local cookie, err = ck:new()
cookie:set({key = "Cookie1", value = "abc", path = "/"})
cookie:set({key = "Cookie2", value = "def", path = "/"})
cookie:set({key = "Cookie3", value = "ghi", path = "/"})
2017-05-19 09:54:15