<!-- review: finished -->

<a id="adc-http-userid"></a>

# UserID

Выдает cookie для идентификации клиентов. Для записи в лог полученных и выданных cookie можно использовать встроенные переменные [$uid_got](https://angie.software//angie/docs/configuration/modules/http/http_userid.md#v-uid-got) и [$uid_set](https://angie.software//angie/docs/configuration/modules/http/http_userid.md#v-uid-set). Модуль совместим с модулем [mod_uid](http://www.lexa.ru/programs/mod-uid.html) для Apache.

<a id="adc-configuration-example-47"></a>

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

```nginx
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"';
```

<a id="adc-directives-50"></a>

## Директивы

<a id="adc-userid"></a>

### userid

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `userid` `on` | `v1` | `log` | `off`;   |
|------------------------------------------------------------------------------------------|-----------------------------------------|
| По умолчанию                                                                             | `userid off;`                           |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | http, server, location                  |

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

| `on`   | разрешает выдачу cookie версии 2 и запись приходящих cookie в лог;    |
|--------|-----------------------------------------------------------------------|
| `v1`   | разрешает выдачу cookie версии 1 и запись приходящих cookie в лог;    |
| `log`  | запрещает выдачу cookie, но разрешает запись приходящих cookie в лог; |
| `off`  | запрещает выдачу cookie и запись приходящих cookie в лог.             |

<a id="adc-userid-domain"></a>

### userid_domain

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `userid_domain` имя | `none`;   |
|------------------------------------------------------------------------------------------|---------------------------------|
| По умолчанию                                                                             | `userid_domain none;`           |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | http, server, location          |

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

<a id="adc-userid-expires"></a>

### userid_expires

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `userid_expires` время | `max` | `off`;   |
|------------------------------------------------------------------------------------------|-------------------------------------------|
| По умолчанию                                                                             | `userid_expires off;`                     |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | http, server, location                    |

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

<a id="adc-userid-flags"></a>

### userid_flags

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `userid_flags` `off` | флаг ...;   |
|------------------------------------------------------------------------------------------|------------------------------------|
| По умолчанию                                                                             | `userid_flags off;`                |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | http, server, location             |

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

<a id="adc-userid-mark"></a>

### userid_mark

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `userid_mark` буква | цифра | = | `off`;   |
|------------------------------------------------------------------------------------------|--------------------------------------------|
| По умолчанию                                                                             | `userid_mark off;`                         |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | http, server, location                     |

Если параметр не `off`, включает механизм маркировки cookie и задает символ, используемый в качестве метки. Этот механизм позволяет добавить или изменить [userid_p3p](https://angie.software//angie/docs/configuration/modules/http/http_userid.md#userid-p3p) и/или время хранения cookie, но при этом оставить неизменным идентификатор клиента. Меткой может быть любая буква английского алфавита (с учетом регистра), цифра или знак "=".

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

<a id="adc-userid-name"></a>

### userid_name

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `userid_name` имя;     |
|------------------------------------------------------------------------------------------|------------------------|
| По умолчанию                                                                             | `userid_name uid;`     |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | http, server, location |

Задает имя cookie.

<a id="adc-userid-p3p"></a>

### userid_p3p

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `userid_p3p` строка | `none`;   |
|------------------------------------------------------------------------------------------|---------------------------------|
| По умолчанию                                                                             | `userid_p3p none;`              |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | http, server, location          |

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

<a id="adc-userid-path"></a>

### userid_path

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `userid_path` путь;    |
|------------------------------------------------------------------------------------------|------------------------|
| По умолчанию                                                                             | `userid_path /;`       |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | http, server, location |

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

<a id="adc-userid-service"></a>

### userid_service

| [Синтаксис](https://angie.software//angie/docs/configuration/configfile.md#configfile)   | `userid_service` номер;              |
|------------------------------------------------------------------------------------------|--------------------------------------|
| По умолчанию                                                                             | `userid_service <IP-адрес сервера>;` |
| [Контекст](https://angie.software//angie/docs/configuration/configfile.md#configfile)    | http, server, location               |

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

<a id="adc-built-in-variables-16"></a>

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

<a id="adc-v-uid-got"></a>

### `$uid_got`

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

<a id="adc-v-uid-reset"></a>

### `$uid_reset`

Если значением является непустая строка не равная `0`, то клиентские идентификаторы перевыдаются. Специальное значение `log` дополнительно приводит к выдаче сообщений о перевыданных идентификаторах в [error_log](https://angie.software//angie/docs/configuration/modules/core.md#error-log).

<a id="adc-v-uid-set"></a>

### `$uid_set`

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