8
n8n 한국어amn8n.com

인증 및 Supabase 통합 안전 웹훅 API 학습

고급

이것은Engineering, Miscellaneous, Multimodal AI분야의자동화 워크플로우로, 27개의 노드를 포함합니다.주로 Set, Webhook, Supabase, RespondToWebhook 등의 노드를 사용하며. 인증 및 Supabase 통합을 포함한 안전한 웹휘크 API를 배우기

사전 요구사항
  • HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
  • Supabase URL과 API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "meta": {
    "instanceId": "67d4d33d8b0ad4e5e12f051d8ad92fc35893d7f48d7f801bc6da4f39967b3592",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "5029ae4f-cddf-4ea3-887b-24dfe0bd4526",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -80,
        -240
      ],
      "webhookId": "07aaa04d-6c73-416f-82e2-1e6ededeacc4",
      "parameters": {
        "path": "07aaa04d-6c73-416f-82e2-1e6ededeacc4",
        "options": {},
        "responseMode": "responseNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "9722f40e-5f71-4e2f-b774-30abaf2cd12b",
      "name": "Webhook1",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -80,
        64
      ],
      "webhookId": "07aaa04d-6c73-416f-82e2-1e6ededeacc4",
      "parameters": {
        "path": "07aaa04d-6c73-416f-82e2-1e6ededeacc4",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "61ab48f4-cbc4-4fe6-b999-5c8179c2f199",
      "name": "Webhook2",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -80,
        1200
      ],
      "webhookId": "07aaa04d-6c73-416f-82e2-1e6ededeacc4",
      "parameters": {
        "path": "07aaa04d-6c73-416f-82e2-1e6ededeacc4",
        "options": {},
        "httpMethod": "PUT"
      },
      "typeVersion": 2.1
    },
    {
      "id": "52473972-d31a-4d2d-b7bd-4021b218dbf1",
      "name": "Webhook3",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -80,
        352
      ],
      "webhookId": "07aaa04d-6c73-416f-82e2-1e6ededeacc4",
      "parameters": {
        "path": "07aaa04d-6c73-416f-82e2-1e6ededeacc4",
        "options": {
          "ipWhitelist": "",
          "allowedOrigins": "*"
        },
        "httpMethod": "PATCH",
        "responseMode": "streaming"
      },
      "typeVersion": 2.1
    },
    {
      "id": "977d58d2-21f2-456e-8c32-188f4058d8e5",
      "name": "Webhook4",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -80,
        640
      ],
      "webhookId": "07aaa04d-6c73-416f-82e2-1e6ededeacc4",
      "parameters": {
        "path": "07aaa04d-6c73-416f-82e2-1e6ededeacc4",
        "options": {},
        "httpMethod": "DELETE"
      },
      "typeVersion": 2.1
    },
    {
      "id": "6cb10c72-df1e-4b00-a616-1b814d39e49f",
      "name": "Webhook5",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -80,
        928
      ],
      "webhookId": "07aaa04d-6c73-416f-82e2-1e6ededeacc4",
      "parameters": {
        "path": "07aaa04d-6c73-416f-82e2-1e6ededeacc4",
        "options": {},
        "httpMethod": "HEAD"
      },
      "typeVersion": 2.1
    },
    {
      "id": "39d1b185-bd11-4fba-9efb-0b839dc9fd34",
      "name": "스티커 메모",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -704,
        -368
      ],
      "parameters": {
        "color": 4,
        "width": 464,
        "height": 272,
        "content": "## What is a webhook (in n8n)?\nA webhook is a tiny HTTP endpoint that n8n exposes to trigger a workflow when it’s called. It can read query params, headers, and body (JSON/form/multipart), and it can send a response immediately, after the flow finishes, or via a Respond to Webhook node. Each Webhook node gives you a Test URL (editor-only) and a Production URL (requires the workflow to be active). Security is built-in: Basic, Header, or JWT auth, plus IP allow-listing and CORS options."
      },
      "typeVersion": 1
    },
    {
      "id": "82826a07-84c3-415b-8253-dbb7098da016",
      "name": "스티커 메모1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -144,
        -368
      ],
      "parameters": {
        "color": 7,
        "width": 272,
        "height": 272,
        "content": "## GET → \n“Retrieve data without making changes. Think queries or health checks.”"
      },
      "typeVersion": 1
    },
    {
      "id": "2895700d-5086-4d05-9048-d4038cdf387f",
      "name": "스티커 메모2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -144,
        -64
      ],
      "parameters": {
        "color": 7,
        "width": 272,
        "height": 272,
        "content": "## POST → \n“Send new data/events. Most webhooks from apps use POST.”"
      },
      "typeVersion": 1
    },
    {
      "id": "34949301-c2dc-4c6f-9630-765bf6e8237e",
      "name": "스티커 메모3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -144,
        1088
      ],
      "parameters": {
        "color": 7,
        "width": 256,
        "height": 272,
        "content": "## PUT → \n“Replace a whole resource with new data. Idempotent.”"
      },
      "typeVersion": 1
    },
    {
      "id": "2876d5a1-b3e8-41dc-9619-d91fe8bac16e",
      "name": "스티커 메모4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -144,
        224
      ],
      "parameters": {
        "color": 7,
        "width": 272,
        "height": 272,
        "content": "## PATCH → \n“Update part of a resource. Send only the fields that changed.”"
      },
      "typeVersion": 1
    },
    {
      "id": "083b92a1-d4cd-46bb-a0b3-4db1f24dbffd",
      "name": "스티커 메모5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -144,
        512
      ],
      "parameters": {
        "color": 7,
        "width": 272,
        "height": 272,
        "content": "## DELETE → \n“Remove a resource. Repeating the call has the same result.”"
      },
      "typeVersion": 1
    },
    {
      "id": "ffda96a3-68fc-4388-88d5-375a39a4cea0",
      "name": "스티커 메모6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -144,
        800
      ],
      "parameters": {
        "color": 7,
        "width": 256,
        "height": 272,
        "content": "## HEAD → \n“Like GET but no body — used for checks/headers only.”"
      },
      "typeVersion": 1
    },
    {
      "id": "667f87de-c043-4d88-a9a3-4ee70e3abfd2",
      "name": "스티커 메모7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -704,
        -80
      ],
      "parameters": {
        "color": 4,
        "width": 464,
        "height": 432,
        "content": "## 🔐 Webhook Auth Types in n8n\n\n* **Basic Auth** → Username + password in the request.\n  *Good for simple server-to-server use. Always use HTTPS.*\n\n* **Header Auth** → Require a specific header + value (e.g. `X-API-Key`).\n  *Works like an API key. Easy to rotate or share.*\n\n* **JWT Auth** → Caller sends a signed JWT (`Authorization: Bearer <token>`).\n  *Stronger option — tokens can expire and carry claims.*\n\n**Extra hardening (Options menu):**\n\n* **IP Whitelist** → Only allow listed IPs.\n* **Allowed Origins (CORS)** → Restrict browser requests to known domains.\n* **Ignore Bots** → Block crawlers/link previewers."
      },
      "typeVersion": 1
    },
    {
      "id": "907e9243-a595-497d-a017-acfb4211d2b5",
      "name": "스티커 메모8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -704,
        368
      ],
      "parameters": {
        "color": 4,
        "width": 464,
        "height": 320,
        "content": "## 📡 Webhook Response Types in n8n\n\n* **Immediately** → Returns `200 OK` right away.\n  *Use when caller only needs a quick acknowledgement.*\n\n* **When Last Node Finishes** → Waits for the workflow to complete, then sends the final data back.\n  *Good when the client expects the processed result.*\n\n* **Using Respond to Webhook** → Response is sent from a separate **Respond to Webhook** node.\n  *Best for async flows — reply later while work continues in background.*\n"
      },
      "typeVersion": 1
    },
    {
      "id": "d11d5a46-2b3e-4e49-beb5-4923f828492a",
      "name": "행 가져오기",
      "type": "n8n-nodes-base.supabase",
      "position": [
        240,
        -240
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "email",
              "keyValue": "={{ $json.query.email }}"
            }
          ]
        },
        "tableId": "demo_contacts",
        "operation": "get"
      },
      "credentials": {
        "supabaseApi": {
          "id": "PNDtoaSn7rFuj8zX",
          "name": "Supabase Nocodecreative.io"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "edbd8d72-79ea-4101-900e-2635b047300f",
      "name": "Webhook에 응답",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        512,
        -240
      ],
      "parameters": {
        "options": {},
        "respondWith": "allIncomingItems"
      },
      "typeVersion": 1.4
    },
    {
      "id": "f8d8f340-c194-4c4e-a308-d5c95e8533b9",
      "name": "행 생성",
      "type": "n8n-nodes-base.supabase",
      "position": [
        512,
        64
      ],
      "parameters": {
        "tableId": "demo_contacts",
        "dataToSend": "autoMapInputData",
        "inputsToIgnore": "id"
      },
      "credentials": {
        "supabaseApi": {
          "id": "PNDtoaSn7rFuj8zX",
          "name": "Supabase Nocodecreative.io"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "5999b69a-5b9f-4f55-9bf3-f579dfe869a1",
      "name": "필드 편집",
      "type": "n8n-nodes-base.set",
      "position": [
        240,
        64
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={{ $json.body }}"
      },
      "typeVersion": 3.4
    },
    {
      "id": "c04fc7eb-e43a-48bd-a979-ed423b52b9f3",
      "name": "필드 편집1",
      "type": "n8n-nodes-base.set",
      "position": [
        240,
        352
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={{ $json.body }}"
      },
      "typeVersion": 3.4
    },
    {
      "id": "7ec4b8ac-5b1a-4b31-9759-f8b7ed070178",
      "name": "Webhook1에 응답",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        752,
        64
      ],
      "parameters": {
        "options": {},
        "respondWith": "allIncomingItems"
      },
      "typeVersion": 1.4
    },
    {
      "id": "0d50f8f4-df4d-448f-9c05-8e2043e8a8d2",
      "name": "Webhook2에 응답",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        752,
        352
      ],
      "parameters": {
        "options": {},
        "respondWith": "allIncomingItems"
      },
      "typeVersion": 1.4
    },
    {
      "id": "481f146d-0d14-4b40-beeb-3f56c548d9cc",
      "name": "행 업데이트",
      "type": "n8n-nodes-base.supabase",
      "position": [
        512,
        352
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "id",
              "keyValue": "={{ $json.id }}",
              "condition": "eq"
            }
          ]
        },
        "tableId": "demo_contacts",
        "operation": "update",
        "dataToSend": "autoMapInputData"
      },
      "credentials": {
        "supabaseApi": {
          "id": "PNDtoaSn7rFuj8zX",
          "name": "Supabase Nocodecreative.io"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ae559e34-c048-4ab7-82d6-5e5f34d0f5d5",
      "name": "행 삭제",
      "type": "n8n-nodes-base.supabase",
      "position": [
        240,
        640
      ],
      "parameters": {
        "filters": {
          "conditions": [
            {
              "keyName": "id",
              "keyValue": "={{ $json.query.id }}",
              "condition": "eq"
            }
          ]
        },
        "tableId": "demo_contacts",
        "operation": "delete"
      },
      "credentials": {
        "supabaseApi": {
          "id": "PNDtoaSn7rFuj8zX",
          "name": "Supabase Nocodecreative.io"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "fb7f6c4a-05f9-4096-96f8-035f8bc20a8d",
      "name": "스티커 메모10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1248,
        -32
      ],
      "parameters": {
        "color": 6,
        "width": 848,
        "height": 171,
        "content": "# n8n Webhooks: A Beginner’s Guide (with Security Built-In)\nBuilt by [Wayne Simpson](https://www.linkedin.com/in/simpsonwayne/) at [nocodecreative.io](https://nocodecreative.io)\n☕ If you find this useful, feel free to [buy me a coffee](https://ko-fi.com/waynesimpson)"
      },
      "typeVersion": 1
    },
    {
      "id": "647b73a3-b157-40ef-b12d-8fe7b69d630c",
      "name": "스티커 메모11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        176
      ],
      "parameters": {
        "color": 7,
        "width": 667,
        "height": 497,
        "content": "# Watch the Video 📺\n### Watch the Video 👇\n[![n8n Webhooks 101 | Secure Them the Right Way](https://vdyfnvnstovfxpabhdjc.supabase.co/storage/v1/object/public/images/Thumbnails/n8n%20webhooks%20101%20SECURE%20YOUR%20DATA.png)](https://www.youtube.com/watch?v=o6F36xsiuBk)\n\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "99ecd5f5-6df0-430a-a863-56af8417ea72",
      "name": "스티커 메모12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1744,
        176
      ],
      "parameters": {
        "color": 7,
        "width": 600,
        "height": 500,
        "content": "## Read to blog post to get started 📝\n**Follow along to to get up and running**\n\n[![n8n Webhooks: A Beginner’s Guide (with Security Built-In)](https://vdyfnvnstovfxpabhdjc.supabase.co/storage/v1/object/public/images/Thumbnails/Screenshot%202025-09-04%20161058.png)](https://blog.nocodecreative.io/n8n-webhooks-a-beginners-guide-with-security-built-in/)\n"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "5029ae4f-cddf-4ea3-887b-24dfe0bd4526": {
      "main": [
        [
          {
            "node": "d11d5a46-2b3e-4e49-beb5-4923f828492a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9722f40e-5f71-4e2f-b774-30abaf2cd12b": {
      "main": [
        [
          {
            "node": "5999b69a-5b9f-4f55-9bf3-f579dfe869a1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "52473972-d31a-4d2d-b7bd-4021b218dbf1": {
      "main": [
        [
          {
            "node": "c04fc7eb-e43a-48bd-a979-ed423b52b9f3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "977d58d2-21f2-456e-8c32-188f4058d8e5": {
      "main": [
        [
          {
            "node": "ae559e34-c048-4ab7-82d6-5e5f34d0f5d5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d11d5a46-2b3e-4e49-beb5-4923f828492a": {
      "main": [
        [
          {
            "node": "edbd8d72-79ea-4101-900e-2635b047300f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5999b69a-5b9f-4f55-9bf3-f579dfe869a1": {
      "main": [
        [
          {
            "node": "f8d8f340-c194-4c4e-a308-d5c95e8533b9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f8d8f340-c194-4c4e-a308-d5c95e8533b9": {
      "main": [
        [
          {
            "node": "7ec4b8ac-5b1a-4b31-9759-f8b7ed070178",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c04fc7eb-e43a-48bd-a979-ed423b52b9f3": {
      "main": [
        [
          {
            "node": "481f146d-0d14-4b40-beeb-3f56c548d9cc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "481f146d-0d14-4b40-beeb-3f56c548d9cc": {
      "main": [
        [
          {
            "node": "0d50f8f4-df4d-448f-9c05-8e2043e8a8d2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

고급 - 엔지니어링, 기타, 멀티모달 AI

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
고급
노드 수27
카테고리3
노드 유형5
난이도 설명

고급 사용자를 위한 16+개 노드의 복잡한 워크플로우

저자
Wayne Simpson

Wayne Simpson

@nocodecreative

I’m Wayne, an AI, automation & low-code consultant, passionate about helping businesses unlock their potential through smart, practical solutions. Contact me at https://www.nocodecreative.io

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34