2013-09-12 2 views
1

Я пишу сценарий Lua для lighttpd (который работает с mod_magnet). Я хочу установить несколько файлов cookie в моем скрипте, но я не знаю, как мне это сделать.Как установить несколько файлов cookie с интерфейсом Lua

Я могу установить одно печенье с этим:

lighty.header['Set-Cookie'] = 'Foo=bar' 

Я попытался это для установки несколько печенья:

lighty.header['Set-Cookie'] = {'Foo=bar', 'bar=Foo'} 

, но это не сработало

Я также попытался это, но нет успеха:

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

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

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

Да, да, но это не сработало. он устарел в [rfc6265] (http://tools.ietf.org/html/rfc6265), чтобы установить несколько файлов cookie таким образом. У каждого файла cookie должно быть отдельное «Set-Cookie». – Shahryar

+0

Кажется, вам нужно несколько полей 'Set-Cookie', но я не уверен, как это работает с таблицами Lua. См. Http://stackoverflow.com/a/4843598/887805 – luastoned

+0

'' Foo = bar; bar = Foo "' не будет работать независимо; спецификация говорит, что несколько значений должны соединяться с запятыми. Поэтому '' Foo = bar, bar = Foo "', но не рекомендуется, может работать до тех пор, пока вы не используете даты истечения срока действия RFC 1126 (которые также содержат запятые). Это не совместимо с RFC 6265, но большинство браузеров должны его поддерживать (вместе с датами истечения формата asctime), которые не содержат запятых), поэтому он может сделать полезную остановку, если окажется, что lighttpd не поддерживает несколько наборов -Кукие заголовки. – ToxicFrog

ответ

0

Похоже, вам повезло: https://github.com/lighttpd/lighttpd1.4/blob/master/src/mod_magnet.c#L711

mod_magnet рассматривает ключ и значение как строки и перезаписывает все, что вы ранее устанавливали для этого заголовка, поэтому вы получаете только один заголовок для каждого ключа.

Если вы посмотрите here, вы увидите, что заголовки Set-Cookie должны быть по одному на строку. Однако сервер должен отвечать одним заголовком Cookie.

В идеале mod_magnet позволит вам использовать таблицу для значения заголовка (such as in node.js). Не похоже, что реализовать это было бы непросто, поэтому, возможно, отправьте отчет об ошибке. Кроме этого, я не думаю, что есть способ обхода нескольких файлов cookie.

Смежные вопросы