Модуль http_userid#

Выдаёт куки для идентификации клиентов. Для записи в лог полученных и выданных кук можно использовать встроенные переменные $uid_got и $uid_set. Модуль совместим с модулем mod_uid для Apache.

Пример конфигурации#

userid         on;
userid_name    uid;
userid_domain  example.com;
userid_path    /;
userid_expires 365d;
userid_p3p     'policyref="/w3c/p3p.xml", CP="CUR ADM OUR NOR STA NID"';

Директивы#

userid#

Синтаксис:

userid on | v1 | log | off;

Умолчание:

userid off;

Контекст:

http, server, location

Разрешает или запрещает выдачу кук и запись приходящих кук в лог:

on

разрешает выдачу кук версии 2 и запись приходящих кук в лог;

v1

разрешает выдачу кук версии 1 и запись приходящих кук в лог;

log

запрещает выдачу кук, но разрешает запись приходящих кук в лог;

off

запрещает выдачу кук и запись приходящих кук в лог.

userid_domain#

Синтаксис:

userid_domain имя | none;

Умолчание:

userid_domain none;

Контекст:

http, server, location

Задаёт домен, для которого устанавливается кука. Параметр none запрещает выдавать домен для куки.

userid_expires#

Синтаксис:

userid_expires время | max | off;

Умолчание:

userid_expires off;

Контекст:

http, server, location

Задаёт время, в течение которого браузер должен хранить куку. Параметр max устанавливает срок хранения куки до 31 декабря 2037 года 23:55:55 GMT. Указание параметра off позволяет ограничить время действия куки сессией браузера.

userid_flags#

Синтаксис:

userid_flags off | флаг …;

Умолчание:

userid_flags off;

Контекст:

http, server, location

Если параметр не off, задаёт один или несколько дополнительных флагов для куки: secure, httponly, samesite=strict, samesite=lax, samesite=none.

userid_mark#

Синтаксис:

userid_mark буква | цифра | = | off;

Умолчание:

userid_mark off;

Контекст:

http, server, location

Если параметр не off, включает механизм маркировки кук и задаёт символ, используемый в качестве метки. Этот механизм позволяет добавить или изменить userid_p3p и/или время хранения куки, но при этом оставить неизменным идентификатор клиента. Меткой может быть любая буква английского алфавита (с учётом регистра), цифра или знак “=”.

Если метка задана, то она сравнивается с первым дополняющим символом в base64 представлении идентификатора клиента, передаваемом в куке. Если они не совпадают, то кука перепосылается с заданной меткой, временем хранения и заголовком “P3P”.

userid_name#

Синтаксис:

userid_name имя;

Умолчание:

userid_name uid;

Контекст:

http, server, location

Задаёт имя куки.

userid_p3p#

Синтаксис:

userid_p3p строка | none;

Умолчание:

userid_p3p none;

Контекст:

http, server, location

Задаёт значение для поля заголовка “P3P”, которое будет выдаваться вместе с кукой. Если задано специальное значение none, то в ответе не будет заголовка “P3P”.

userid_path#

Синтаксис:

userid_path путь;

Умолчание:

userid_path /;

Контекст:

http, server, location

Задаёт путь, для которого устанавливается кука.

userid_service#

Синтаксис:

userid_service номер;

Умолчание:

userid_service IP-адрес сервера;

Контекст:

http, server, location

Если идентификаторы выдаются несколькими серверами (сервисами), то каждому сервису следует назначить свой собственный номер, для обеспечения уникальности выдаваемых идентификаторов клиентов. По умолчанию для кук первой версии используется ноль. Для кук второй версии по умолчанию используется число, составленное из последних четырёх октетов IP-адреса сервера.

Встроенные переменные#

$uid_got#

Имя куки и полученный идентификатор клиента.

$uid_reset#

Если значением является непустая строка не равная 0, то клиентские идентификаторы перевыдаются. Специальное значение log дополнительно приводит к выдаче сообщений о перевыданных идентификаторах в error_log.

$uid_set#

Имя куки и выданный идентификатор клиента.