Модуль http_userid#

Выдает cookie для идентификации клиентов. Для записи в лог полученных и выданных cookie можно использовать встроенные переменные $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

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

on

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

v1

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

log

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

off

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

userid_domain#

Синтаксис:

userid_domain имя | none;

Умолчание:

userid_domain none;

Контекст:

http, server, location

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

userid_expires#

Синтаксис:

userid_expires время | max | off;

Умолчание:

userid_expires off;

Контекст:

http, server, location

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

userid_flags#

Синтаксис:

userid_flags off | флаг …;

Умолчание:

userid_flags off;

Контекст:

http, server, location

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

userid_mark#

Синтаксис:

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

Умолчание:

userid_mark off;

Контекст:

http, server, location

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

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

userid_name#

Синтаксис:

userid_name имя;

Умолчание:

userid_name uid;

Контекст:

http, server, location

Задает имя cookie.

userid_p3p#

Синтаксис:

userid_p3p строка | none;

Умолчание:

userid_p3p none;

Контекст:

http, server, location

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

userid_path#

Синтаксис:

userid_path путь;

Умолчание:

userid_path /;

Контекст:

http, server, location

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

userid_service#

Синтаксис:

userid_service номер;

Умолчание:

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

Контекст:

http, server, location

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

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

$uid_got#

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

$uid_reset#

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

$uid_set#

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