1

我正在为 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"
4

2 回答 2

0

看起来你运气不好: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-16T22:24:25.473 回答
0

使用 lighttpd 1.4.60 及更高版本的 lighttpd mod_magnet文档说:

To repeat header names, such as Set-Cookie or Link, join with "\r\nNAME:"
e.g. lighty.r.resp_header["Link"] = "http://a.com/a.css\r\nLink: http:/b.com/b.js"
于 2022-01-22T20:56:51.310 回答