nginx add_header Set-Cookie истекает не работает - PullRequest
1 голос
/ 16 апреля 2019

Я пытаюсь настроить сервер nginx, который устанавливает определенные параметры в куки при попадании в определенное место.

У меня есть следующая конфигурация, которая помещает параметры в файл cookie, но срок действия не работает. Это моя конфигурация:

server {
    listen       8800 default_server;
    include /etc/nginx/default.d/*.conf;

    server_name test.net;

    location /initial {
            add_header Set-Cookie lcid=1043;
            add_header Set-Cookie expires=60;
    }
}

Насколько я понимаю, через 60 секунд после установки этого файла cookie файл должен истечь и быть удален. Однако оно сохраняется.

Что-то не так с этой конфигурацией?

Любая помощь будет оценена, Спасибо!

1 Ответ

0 голосов
/ 17 апреля 2019

Приведенная выше конфигурация приведет к двум заголовкам Set-Cookie, установленным в ответе, отправленном клиенту.

Set-Cookie: lcid = 1043 Set-Cookie: expires = 60

"Expires"это атрибут cookie, который должен присутствовать в заголовке, где вы устанавливаете имя и значение cookie.Также еще один момент, на который следует обратить внимание: атрибут Expires файла cookie принимает только фиксированную временную отметку (например, Expires = Wed, 21 Oct 2015 07:28:00 GMT), а не длительность.Если вам нужно указать срок действия куки в терминах длительности, вам нужно установить атрибут Max-Age вместо Expires.

Поэтому вам нужно изменить конфигурацию, чтобы иметь только одну директиву add_header, которая выглядит какниже

add_header Set-Cookie "lcid = 1043; Max-Age = 60";

Это гарантирует, что клиент получит только один заголовок Set-Cookie в ответе с соответствующим значением срока действияустановить, как указано в атрибуте Max-Age файла cookie.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...