====== Использование файлов cookie ======
Менеджер файлов cookie Postman позволяет вам просматривать и редактировать файлы cookie, связанные с различными доменами. Вы можете вручную создать файлы cookie для домена или перехватывать файлы cookie с помощью прокси-сервера Postman или перехватчика Postman. Затем вы можете использовать файлы cookie, хранящиеся в контейнере для файлов cookie, при отправке запросов в Postman.
> Чтобы отключить отправку файлов cookie с запросом, перейдите на вкладку **Настройки** запроса, затем выберите **Отключить хранилище файлов cookie**.
===== Что такое файлы cookie? =====
Компьютерный файл cookie более формально известен как HTTP-файл cookie, веб-файл cookie, интернет-файл cookie или файл cookie браузера. Это название является сокращенной версией “волшебного файла cookie”, который представляет собой термин, обозначающий пакет данных, который компьютер получает, а затем отправляет обратно, не изменяя его.
Файл cookie обычно содержит две части данных: уникальный идентификатор для каждого пользователя и название сайта. Файлы cookie позволяют веб-сайтам извлекать эту информацию, когда вы повторно посещаете их, чтобы они могли запомнить вас и ваши предпочтения и адаптировать содержание страницы для вас на основе этой информации. Без файлов cookie вам пришлось бы снова входить в систему после того, как вы покинете сайт, или перестраивать свою корзину покупок, если вы закрыли веб-страницу. Это делает файлы cookie важной частью работы в Интернете.
===== Использование менеджера файлов cookie =====
Чтобы управлять файлами cookie в Postman, откройте запрос, затем выберите **Cookies** (в разделе **Отправить**).
{{ :postman:cookies-link.jpg |}}
В окне **Управление файлами cookie** отображается список доменов и файлов cookie, связанных с каждым из них. Если вы хотите просмотреть файлы cookie для домена, которого нет в списке, вы можете добавить домен.
{{ :postman:manage-cookies-v9-14.jpg |}}
==== Создание файлов cookie ====
Чтобы добавить новый файл cookie для домена, выберите **+ Add Cookie**. Создается предварительно сгенерированная строка cookie, соответствующая стандарту.
=; path=/; domain=.domain.com; HttpOnly; Secure; Expires=Tue, 19 Jan 2038 03:14:07 GMT;
Postman поддерживает следующие атрибуты:
* **cookieName**, **cookieValue** - Название файла cookie и значение, хранящееся в нем.
* **Domain** - домен.
* **Path** - URL-адрес, к которому ограничен доступ к файлу cookie. Если путь равен "/", файл cookie будет отправлен на все запросы в указанном домене.
* **HttpOnly** - Если файл cookie присутствует, он не будет доступен для клиентских скриптов, запускаемых на странице (например, с помощью "document.cookie" в JavaScript). Файл cookie будет добавлен в заголовок файла cookie только при отправленных запросах. Это поле не влияет на поведение Postman.
* **Secure** - Если файл cookie присутствует, он отправляется только тогда, когда URL начинается с "https://", и не будет отправлен по небезопасному соединению.
* **Expires** - Время, по истечении которого срок действия файла cookie истечет и он не будет отправлен Postman.
Select **Save** чтобы сохранить файл cookie в хранилище файлов cookie под соответствующим доменом.
> Вы также можете добавить или отредактировать файлы cookie в ответе с заголовком Set-Cookie.
==== Отправка файлов cookie с запросом ====
Когда вы отправляете запрос в домен, к которому вы добавили файл cookie, файл cookie автоматически появится на вкладке "Заголовки вашего запроса". Если файл cookie не виден, выберите **скрытый**, чтобы отобразить автоматически созданные заголовки.
{{ :postman:autogenerated-cookie-header-v9.jpg |}}
Вы не можете переопределить заголовки файлов cookie непосредственно на вкладке ** Заголовки**. Отредактируйте файл cookie в диспетчере файлов cookie или удалите файл cookie и задайте заголовки вашего запроса вручную. Вы можете добавить файлы cookie в диспетчере файлов cookie, а также на вкладке **Заголовки**, и Postman объединит файлы cookie перед отправкой запроса.
==== Добавить domain ====
Если вы хотите просмотреть или добавить файлы cookie для домена, которого нет в диспетчере файлов cookie, вы можете добавить домен. Чтобы добавить новый домен, введите доменное имя в поле (не указывайте номер порта или "http://") и выберите **Добавить домен**. Затем вы можете добавить файлы cookie для нового домена.
==== Обновить cookie ====
Чтобы обновить существующий файл cookie для домена, выберите файл cookie, который вы хотите отредактировать. Вы можете отредактировать любое свойство и выбрать **Save** для обновления.
==== Удалить cookie ====
Чтобы удалить домен и все связанные с ним файлы cookie, выберите кнопку "x" рядом с доменом. Чтобы удалить отдельный файл cookie, выберите выберите кнопку "x" его рядом с файлом cookie.
===== Доступ к файлам cookie в скриптах =====
Когда вы добавляете домен в список разрешенных, доступ к файлам cookie для этого домена можно получить с помощью скриптов
Чтобы добавить домен в список разрешенных, выполните следующие действия:
- Откройте запрос, затем выберите **Cookies**.
- В окне **Manage Cookies** выберите **Domains Allowlist**.
- Введите домен, который должен быть разрешен, и выберите **Add**.
===== Создание файлов cookie программным способом =====
Вы можете программно создавать и удалять файлы cookie, вместо того чтобы полагаться на графический интерфейс. Это дает вам большую степень контроля над файлами cookie.
Первый шаг, который необходимо выполнить при любом виде операций с файлами cookie, - это создать файл cookie jar, объект, который будет содержать файлы cookie и методы, которые будут использоваться для работы с файлами cookie.
==== Создание cookie jar ====
Чтобы создать cookie jar, используйте ''pm.cookies.jar()'' метод. Это создает объект, содержащий файлы cookie и методы для доступа к ним.
const cookieJar = pm.cookies.jar();
==== Создание файла cookie ====
После создание cookie jar, вы можете поместить в него cookie. Установите файл cookie с помощью функции ".set()". Эта функция принимает URL-адрес, имя файла cookie и значение файла cookie:
// create a cookie
cookieJar.set(URL, cookie name, cookie value, callback(error, cookie));
Вы также можете установить "PostmanCookie" или совместимый с ним объект cookie, используя функцию ".set()":
// create a PostmanCookie
cookieJar.set(URL, { name: cookie name, value: cookie value, httpOnly: true }, callback (error, cookie));
==== Получить cookie ====
Чтобы получить файл cookie, используйте функцию ".get()". Эта функция принимает URL-адрес и имя требуемого файла cookie. Он возвращает значение файла cookie.
// get the created cookie
cookieJar.get(URL, cookie name, callback(error, cookie));
==== Получить все cookies ====
Чтобы получить все файлы cookie для определенного URL, которые находятся в cookie jar, используйте функцию ".GetAll()". Эта функция принимает URL-адрес и возвращает все файлы cookie для этого URL-адреса:
// get the created cookies
cookieJar.getAll(URL, callback(error, cookies));
==== Удалить cookie ====
Чтобы удалить файл cookie, используйте функцию ".unset()". Эта функция принимает URL-адрес и название файла cookie, который необходимо удалить:
// Delete the created cookie
cookieJar.unset(URL , cookie name, callback (error));
==== Удалить все cookies ====
Чтобы очистить все файлы cookie для URL-адреса, используйте функцию ".clear()". Эта функция принимает URL-адрес, для которого вы хотите удалить файлы cookie. Функция ".clear()" удаляет все файлы cookie для определенного URL, но не удаляет все файлы cookie в jar, поскольку в jar могут быть файлы cookie для более чем одного URL.
// delete the set cookies
cookieJar.clear(URL, callback (error));
==== Последовательное удаление и последующая установка файлов cookie ====
Чтобы очистить все файлы cookie для URL-адреса ".clear()", а затем поместить файл cookie в контейнер для файлов cookie ".set()", используйте функцию обратного вызова.
Вызовы функций выполняются асинхронно. Используйте функцию обратного вызова, чтобы гарантировать последовательное выполнение функций:
cookieJar.clear(URL, (error) => {
jar.set(URL, cookie name, cookie value, callback(error, cookie));
});
пример:
const cookieJar = pm.cookies.jar();
const URL = 'https://seller.ozon.ru';
cookieJar.clear(URL, () => {
cookieJar.set(URL, { name: '__Secure-access-token', value: '3.42050561.73l1dWpyRaaoR1GGaTDugA.68.l8cMBQAAAABkP_EgFOJoVqN3ZWKrNzk2MDEyODQyNzAAgJCg.20191227224811.20230420014816.NTLiIhs6Ic63uxRVmltOg6M0jLxJ4T6pBC_AVnzf-U0' }, (err) => { if(err) {console.log(err)}});
cookieJar.set(URL, { name: '__Secure-ab-group', value: '68' }, (err) => { if(err) {console.log(err)}});
cookieJar.set(URL, { name: '__Secure-refresh-token', value: '3.42050561.73l1dWpyRaaoR1GGaTDugA.68.l8cMBQAAAABj4m4nAegHxaN3ZWKrNzk2MDEyODQyNzAAgJCg.20191227224811.20230420014438.MJkeeJ4U7l8l8a1nxcAi-ESmLb-KGeKjwgS_Lcfr8x4' }, (err) => { if(err) {console.log(err)}});
cookieJar.set(URL, { name: '__Secure-user-id', value: '42050561' }, (err) => { if(err) {console.log(err)}});
});
===== Синхронизация файлов cookie =====
Postman может перехватывать файлы cookie для браузера или клиентского приложения, используя прокси-сервер Postman или перехватчик Postman. Для выбранных вами доменов захваченные файлы cookie непрерывно синхронизируются с файлом cookie Postman jar. Это позволяет вам использовать любые сеансы аутентификации в вашем браузере или клиентском приложении для выполнения вызовов API в Postman.