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

我正在为 Lighttpd(与 mod_magnet 配合使用)编写 Lua 脚本。我想在脚本中设置多个 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"
点赞
用户790470
用户790470

看起来你没有什么好运:https://github.com/lighttpd/lighttpd1.4/blob/master/src/mod_magnet.c#L711

mod_magnet将键和值视为字符串,并覆盖该标头先前设置的任何内容,因此每个键仅可获得一个标头。

如果你在这里看一下,你会发现Set-Cookie标头必须每行一个。然而,服务器应该以单个Cookie标头响应。

理想情况下,mod_magnet会允许你使用表格作为头的值(例如在node.js中)。实现这个似乎并不太困难,所以也许要提交一个错误报告。其他方面,我认为没有任何解决多个cookie的方法。

2013-09-16 22:24:25
用户1338888
用户1338888

使用 lighttpd 1.4.60 及之后版本的 lighttpd mod_magnet 文档说:

要重复头部名称,例如 Set-Cookie 或 Link,请使用 "\r\nNAME:" 进行连接。
例如,lighty.r.resp_header["Link"] = "http://a.com/a.css\r\nLink: http:/b.com/b.js"
2022-01-22 20:56:51