在Openresty Lua中删除多个动态命名的Cookie

以下代码在Openresty lua中可以正常工作:

ngx.header ["Set-Cookie"] = {
   'test1 =; expires = Thu, Jan 01 1970 00:00:00 UTC; domain = test.com;',
   'test2 =; expires = Thu, Jan 01 1970 00:00:00 UTC; domain = test.com;'
}

但是当尝试使cookie名称动态时,它不起作用:

local cookies = {}
local args = {'test1', 'test2'}

for i = 1,#args do
  cookies [i] = args [i] .. '=; expires = Thu,Jan 01 1970 00:00:00 UTC; domain = test.com;'
end

ngx.header ["Set-Cookie"] = cookies

甚至尝试使用table.insert:

local cookies = {}
local args = {'test1''test2'}

for i = 1,#args do
  table.insert(cookies,args [i] .. '=; expires = Thu,Jan 01 1970 00:00:00 UTC; domain = test.com;'end

ngx.header ["Set-Cookie"] = cookies

问题似乎在于将变量分配给 ngx.header ["Set-Cookie"]

点赞
用户362271
用户362271

使用ngx.header.set_cookie代替ngx.header["Set-Cookie"]是可以的。以下代码现在可以工作:

local cookies = {}
local args = {'test1', 'test2'}

for i=1, #args do
  cookies[i] = args[i] .. '=; expires=Thu, Jan 01 1970 00:00:00 UTC; domain=test.com;'
end

ngx.header.set_cookie = cookies
2016-01-12 12:20:18