Cookie EditorCookie Editor
모든 가이드

문서

n8n과 함께 사용

n8n 연동을 사용하면 워크플로가 HTTP를 통해 브라우저에서 쿠키를 가져올 수 있습니다 — 수동 내보내기가 필요 없습니다. 암호화 비밀번호는 확장 프로그램에만 저장되며, 서버는 받지 않습니다.

아키텍처

n8n ──HTTP GET──► Cookie Editor Server ──WebSocket──► Extension ──► chrome.cookies
                        │                                    │
                        └──── encrypted data ◄───────────────┘
n8n decrypts with the password you configured

1단계: n8n 탭 열기

  1. Cookie Editor 사이드 패널을 엽니다.
  2. 오른쪽 사이드바에서 n8n 아이콘을 클릭합니다.
  3. 확장 프로그램이 전용 n8n.html 탭을 엽니다.
n8n 탭 — Connect 버튼이 있는 연결 해제 상태
n8n 탭 — Connect 버튼이 있는 연결 해제 상태

2단계: 확장 프로그램을 서버에 연결

  1. Connect를 클릭합니다.
  2. 안내되면 storagealarms 권한을 허용합니다.
  3. Connect 모달에서 encryption password를 입력합니다.
    • 이 비밀번호는 서버로 전송되지 않습니다.
    • 확장 프로그램에 로컬로 저장됩니다 — n8n에서 복호화할 때 동일한 값을 사용하세요.
  4. 확장 프로그램이 wss://cookieeditor.org/ws/n8n(개발: ws://localhost:3000/ws/n8n)에 WebSocket을 엽니다.
  5. 서버가 ck_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 형식의 **client_key**를 반환합니다.
연결된 n8n 탭 — client_key 표시, Disconnect 및 View usage 버튼
연결된 n8n 탭 — client_key 표시, Disconnect 및 View usage 버튼

3단계: client_key 복사

연결에 성공하면 화면에 표시된 client_key를 복사합니다. n8n의 모든 API 요청에 사용하세요.

확장 프로그램의 Usage / View usage 탭에는 바로 사용할 수 있는 fetch, curl, n8n Function 예제가 포함되어 있습니다.

4단계: n8n에서 API 호출

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에서 복호화

HTTP Request 다음에 Function 노드를 추가합니다.

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 }));

필요하면 n8n에 crypto-js 패키지를 설치하세요. 비밀번호는 확장 프로그램 연결 시 입력한 값과 일치해야 합니다.

n8n이 API를 호출할 때 일어나는 일

  1. n8n이 GET /api/n8n/cookies?client_key&url을 전송
  2. 서버가 client_key로 WebSocket 세션을 찾음
  3. 서버가 확장 프로그램에 { type: "get_cookies", request_id, url }을 전송
  4. 확장 프로그램: chrome.cookies.getAll({ url }) → AES 암호화 → cookies_result 전송
  5. 서버가 암호화된 data를 n8n에 반환
  6. n8n이 비밀번호로 복호화

요청 기록

확장 프로그램은 n8n 탭에 최근 50건의 요청을 저장합니다(로컬만):

  • 도메인, URL, 시간, 상태, 쿠키 수, 오류 메시지
  • Clear history 버튼으로 기록 삭제
n8n 탭의 요청 기록 테이블 — domain, url, status, cookie count
n8n 탭의 요청 기록 테이블 — domain, url, status, cookie count

연결 해제

n8n 탭에서 Disconnect를 클릭:

  • 확장 프로그램이 { type: "disconnect" }를 전송하고 WebSocket을 닫음
  • 서버가 세션을 제거 — 이전 client_key는 더 이상 작동하지 않음
  • 연결 해제 설정에 따라 로컬 비밀번호가 지워질 수 있음

일반적인 오류

API error Cause
client_not_found 확장 프로그램이 연결되지 않았거나 이미 연결 해제됨
extension_timeout 확장 프로그램이 30초 내에 응답하지 않음
extension_error 해당 URL에 쿠키 없음, 또는 로컬 비밀번호 누락
Decryption failed n8n 비밀번호가 Connect 비밀번호와 다름

안정적 운영을 위한 요구 사항

  • Chrome이 실행 중이고 확장 프로그램이 연결되어 있어야 함
  • n8n 탭 또는 백그라운드 service worker가 WebSocket을 유지해야 함
  • 요청의 URL에 브라우저에 쿠키가 있어야 함(해당 사이트를 방문한 적이 있어야 함)

다음 단계