Cookies 如何使用Lua接口设置多个Cookie

Cookies 如何使用Lua接口设置多个Cookie,cookies,lua,lighttpd,Cookies,Lua,Lighttpd,我正在为lighttpd编写一个Lua脚本(它使用mod_magnet运行)。我想在我的脚本中设置多个cookie,但我不知道该怎么做 我可以用以下设置一个cookie: lighty.header['Set-Cookie'] = 'Foo=bar' 我已经尝试过设置多个cookie: lighty.header['Set-Cookie'] = {'Foo=bar', 'bar=Foo'} 但它不起作用 我也尝试过,但没有成功: lighty.header['set-Cookie'] = {

我正在为lighttpd编写一个Lua脚本(它使用mod_magnet运行)。我想在我的脚本中设置多个cookie,但我不知道该怎么做

我可以用以下设置一个cookie:

lighty.header['Set-Cookie'] = 'Foo=bar'
我已经尝试过设置多个cookie:

lighty.header['Set-Cookie'] = {'Foo=bar', 'bar=Foo'}
但它不起作用

我也尝试过,但没有成功:

lighty.header['set-Cookie'] = {}

lighty.header['set-Cookie']['Foo'] = "bar"

lighty.header['set-Cookie']['bar'] = "Foo"

看来你运气不好:

mod_magnet将键和值视为字符串,并覆盖以前为该标题设置的任何内容,因此每个键只能获得一个标题

如果您查看,您将看到Set Cookie头必须是每行一个。但是,服务器应该使用单个Cookie头进行响应


理想情况下,mod_magnet将允许您使用一个表来表示标头的值()。这看起来并不是很难实现,所以可能需要提交一份bug报告。除此之外,我不认为有任何解决办法可以设置多个cookie。

是的,我有,但它不起作用。在中,不赞成以这种方式设置多个cookie。每个cookie都必须有单独的“Set cookie”。看起来您需要多个
Set cookie
字段,但我不确定这将如何处理Lua表。请参见
“Foo=bar;bar=Foo”
无论如何都不起作用;规范规定多个值要用逗号连接。因此,虽然不推荐使用“Foo=bar,bar=Foo”,但只要不使用RFC1126过期日期(其中也包含逗号),就可以使用。这不符合RFC 6265,但大多数浏览器都应该支持它(以及
asctime
-格式过期日期,不包含逗号)-因此,如果lighttpd不支持多个set-cookie头,它可能是一个可用的权宜之计。@ToxicFrog:我使用了
set-cookie:Foo=bar,bar=Foo”
,但它也不起作用!