====== Использование файлов 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.