Интеграция с n8n позволяет рабочим процессам получать cookies из браузера по HTTP — без ручного экспорта. Пароль шифрования хранится только в расширении; сервер никогда не получает его.
Архитектура
n8n ──HTTP GET──► Cookie Editor Server ──WebSocket──► Extension ──► chrome.cookies
│ │
└──── encrypted data ◄───────────────┘
n8n decrypts with the password you configured
Шаг 1: Открытие вкладки n8n
- Откройте боковую панель Cookie Editor.
- Нажмите значок n8n в правой боковой панели.
- Расширение откроет отдельную вкладку
n8n.html.

Шаг 2: Подключение расширения к серверу
- Нажмите Connect.
- Предоставьте разрешения
storageиalarms, если будет запрошено. - Введите пароль шифрования в окне Connect.
- Этот пароль не отправляется на сервер.
- Он хранится локально в расширении — используйте то же значение при расшифровке в n8n.
- Расширение открывает WebSocket к
wss://cookieeditor.org/ws/n8n(dev:ws://localhost:3000/ws/n8n). - Сервер возвращает
client_keyвидаck_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

Шаг 3: Копирование client_key
После успешного подключения скопируйте client_key, отображаемый на экране. Используйте его в каждом API-запросе из n8n.
Вкладка Usage / View usage в расширении содержит готовые примеры fetch, curl и n8n Function.
Шаг 4: Вызов API из n8n
HTTP Request node
Method: GET
URL: https://cookieeditor.org/api/n8n/cookies
Query:
client_key: {{ $env.COOKIE_EDITOR_CLIENT_KEY }}
url: https://example.com
curl
curl "https://cookieeditor.org/api/n8n/cookies?client_key=ck_YOUR_KEY&url=https://example.com"
fetch (JavaScript)
const res = await fetch(
"https://cookieeditor.org/api/n8n/cookies?client_key=ck_YOUR_KEY&url=https://example.com"
);
const json = await res.json();
// json.data = AES-encrypted cookie string
Success response
{
"success": true,
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"client_key": "ck_...",
"url": "https://example.com",
"domain": "example.com",
"data": "U2FsdGVkX1+..."
}
Шаг 5: Расшифровка в n8n
Добавьте узел Function после HTTP Request:
const CryptoJS = require('crypto-js');
const encrypted = $input.first().json.data;
const password = $env.COOKIE_EDITOR_PASSWORD; // same password as Connect
const decryptedBase64 = CryptoJS.AES.decrypt(encrypted, password)
.toString(CryptoJS.enc.Utf8);
if (!decryptedBase64) {
throw new Error('Decryption failed — wrong password?');
}
const cookies = JSON.parse(atob(decryptedBase64));
return cookies.map((cookie) => ({ json: cookie }));
При необходимости установите пакет
crypto-jsв n8n. Пароль должен совпадать с тем, что вы ввели при подключении расширения.
Что происходит при вызове API из n8n
- n8n отправляет
GET /api/n8n/cookies?client_key&url - Сервер находит WebSocket-сессию по
client_key - Сервер отправляет
{ type: "get_cookies", request_id, url }в расширение - Расширение:
chrome.cookies.getAll({ url })→ AES encrypt → отправляетcookies_result - Сервер возвращает зашифрованные
dataв n8n - n8n расшифровывает с вашим паролем
История запросов
Расширение сохраняет до 50 последних запросов на вкладке n8n (только локально):
- Домен, URL, время, статус, количество cookies, сообщение об ошибке
- Очистка истории кнопкой Clear history

Отключение
Нажмите Disconnect на вкладке n8n:
- Расширение отправляет
{ type: "disconnect" }и закрывает WebSocket - Сервер удаляет сессию — старый
client_keyперестаёт работать - Локальный пароль может быть очищен в зависимости от настроек отключения
Типичные ошибки
| API error | Причина |
|---|---|
client_not_found |
Расширение не подключено или уже отключено |
extension_timeout |
Расширение не ответило в течение 30 секунд |
extension_error |
Нет cookies для этого URL или отсутствует локальный пароль |
| Decryption failed | Пароль в n8n отличается от пароля Connect |
Требования для стабильной работы
- Chrome должен работать с подключённым расширением
- Вкладка n8n или фоновый service worker должны поддерживать WebSocket
- URL в запросе должен иметь cookies в браузере (вы должны посетить этот сайт)