iT邦幫忙

2026 iThome 鐵人賽

DAY 21
0
AI 自動化

30 天打造我的 AI 自動化工作流系列 第 21 篇

Day 21|API 不是誰都能用!認識 API Key、Token 與 Authentication

  • 分享至 

  • xImage
  •  

昨天第一次使用 n8n 的 HTTP Request Node 呼叫 API。

我們做出的流程是:

Manual Trigger → HTTP Request → API → 取得 JSON

甚至還可以把取得的資料繼續交給 AI:

HTTP Request → AI → Google Sheets

不過昨天使用的是公開測試 API,不需要登入,也不需要提供任何身分資訊。

但真正開始使用其他服務的 API 時,通常不會這麼簡單。

例如:

AI API
天氣 API
Google 服務
Notion
GitHub
各種公司自己的系統

很多服務都會先問一件事:

「你是誰?你有權限使用這個 API 嗎?」

所以今天就來認識 API 串接很常遇到的:

Authentication(驗證)


為什麼 API 需要驗證?

假設一個付費 AI API 完全沒有驗證機制。

任何人只要知道 API 網址,就可以一直送 Request。

結果可能造成:

API 被大量濫用
無法知道是誰發出的 Request
使用額度無法管理
私人資料可能被未授權的人取得

所以很多 API 都需要先確認使用者的身分或權限。

概念大概是:

n8n
 ↓
帶著驗證資訊
 ↓
API
 ↓
檢查權限
 ↓
驗證成功
 ↓
回傳資料

這個「確認身分或權限」的過程,就是今天要認識的 Authentication。


API Key 是什麼?

第一個最常看到的就是:

API Key

可以先把 API Key 想成服務發給開發者的一組「使用憑證」。

例如:

API_KEY = abc123xxxxxxxx

當 n8n 呼叫 API 時,就需要把這組資訊一起送出去。

API 收到 Request 後,就可以確認:

這個 Request 是誰發出的?
這組 Key 有沒有權限?
還有沒有使用額度?

如果驗證成功,才會回傳資料。


Step 1:先認識 HTTP Request 的 Authentication

回到昨天使用的 HTTP Request Node。

昨天因為使用公開 API,所以 Authentication 可以不設定。

但很多需要驗證的 API,會要求我們提供不同形式的 Credentials。

https://ithelp.ithome.com.tw/upload/images/20261005/20178835t7WDqc7DYs.png

圖 1 HTTP Request Node 中與 Authentication 相關的設定

這時候我才發現:

不是所有 API 的驗證方式都一樣。

所以不能看到 API Key 就隨便找一個地方貼上。

真正要看的是:

這個 API 的官方文件要求怎麼傳。


API Key 要放在哪裡?

不同 API 可能會要求不同方式。

例如某些 API 可能要求放在 Header:

Authorization: Bearer YOUR_TOKEN

也有 API 可能使用像:

X-API-Key: YOUR_API_KEY

還有些服務可能會透過 Query Parameter 或其他方式處理驗證。

所以實際串接 API 時,第一步不是猜設定,而是先查看該服務的 API Documentation。


Header 是什麼?

昨天 HTTP Request 主要注意的是:

URL
GET
Response

今天又多認識一個東西:

Header

可以先簡單把 Header 理解成 Request 附帶的一些額外資訊。

例如:

Request
│
├── URL
├── Method
├── Headers
└── Body

其中 Header 可能包含:

Authorization
Content-Type
API Key

例如:

Authorization: Bearer YOUR_TOKEN

就是把驗證資訊放在 HTTP Header 裡。

https://ithelp.ithome.com.tw/upload/images/20261005/20178835QVFdaWPreQ.png

圖 2 HTTP Request 中的 Header 設定位置


Token 又是什麼?

除了 API Key,我也常看到:

Token

例如:

Access Token
Bearer Token

API Key 和 Token 都可能被用來協助驗證或授權,但實際用途、產生方式、有效期限和權限管理會依服務而不同。

所以目前不用硬把它們當成完全相同的東西。

今天先記得:

看到 API Key、Token、Access Token 時,都不要直接公開。

這點非常重要。


Step 2:認識 Bearer Token

有些 API 會要求:

Authorization: Bearer YOUR_TOKEN

例如:

Authorization: Bearer abc123456

這代表 Request 會帶著 Token 去存取 API。

概念上:

n8n
 ↓
HTTP Request
 ↓
Authorization
 ↓
Bearer Token
 ↓
API

API 確認 Token 有效後,才允許存取。

如果沒有帶 Token,或 Token 不正確,就可能收到像:

401 Unauthorized

如果身分已確認、但沒有存取某個資源的權限,也可能遇到:

403 Forbidden

Step 3:不要把真正的 API Key 寫死在 Workflow

假設取得一組 API Key:

abc123456789

最直接的方法可能是把它貼進 HTTP Request。

但如果之後要截圖、分享 Workflow,甚至把設定交給別人,這組 Key 就可能不小心一起被公開。

所以在 n8n 裡,能使用 Credentials 或適合的驗證設定時,應該優先把敏感的驗證資訊放在專門管理憑證的位置,而不是散落在每個 Node 的文字欄位裡。

概念上比較像:

HTTP Request
      ↓
Credentials
      ↓
安全保存驗證資訊

而不是:

HTTP Request
      ↓
直接把密鑰寫得到處都是

https://ithelp.ithome.com.tw/upload/images/20261005/20178835F0VkXJl0jx.png

圖 3 使用 n8n Credentials 管理 API 驗證資訊

截圖之前一定要再次確認畫面上沒有顯示真正的 Key 或 Token。


Step 4:用假的 Key 觀察錯誤

今天其實不一定要真的申請付費 API。

也可以把重點放在理解:

驗證失敗會發生什麼事?

假設某個測試環境要求 Token,但提供了錯誤的驗證資訊。

API 就可能拒絕 Request。

例如:

HTTP Request
      ↓
錯誤 Token
      ↓
API 驗證失敗
      ↓
401 Unauthorized

這又跟 Day 18 的除錯連起來。

看到 HTTP Request 出錯時,就可以開始判斷:

404 → 資源或網址可能有問題

401 → 驗證資訊可能有問題

403 → 可能沒有操作這個資源的權限

5xx → API 服務端可能發生問題

實際原因仍然要看 API 回傳的錯誤內容與官方文件。


Step 5:Authentication 和 Authorization 不完全一樣

今天查資料時還看到兩個很像的單字:

Authentication
Authorization

一開始真的很容易搞混。

我目前把它們簡單理解成:

Authentication:

「你是誰?」

確認使用者或系統的身分。

Authorization:

「你可以做什麼?」

確認這個身分有哪些權限。

例如:

登入成功
↓
Authentication ✓

想刪除資料
↓
檢查是否有刪除權限
↓
Authorization

所以:

有成功驗證身分,不代表什麼事情都可以做。

這也是為什麼 API 會有不同的權限設定。


Step 6:回頭看之前用過的 AI

做到這裡,我才發現其實前面早就碰過 Authentication。

之前把 AI 接進 n8n 時,需要先設定相關的 Credentials。

當時比較像是:

「照著設定把它連起來。」

現在才比較理解背後的概念:

n8n
 ↓
Credentials
 ↓
驗證資訊
 ↓
AI Service
 ↓
驗證成功
 ↓
使用模型

所以 Credentials 不只是「設定帳號」而已。

它其實也是 n8n 與外部服務建立授權連線的重要部分。


API Key 最重要的安全問題

今天我覺得最重要的反而不是怎麼貼 API Key。

而是:

不要把 API Key 洩漏出去。

尤其我現在會把操作過程寫成鐵人賽文章,又會放很多截圖。

所以之後截圖時要特別檢查:

API Key
Access Token
Password
Client Secret
Credentials
Webhook 中不適合公開的資訊

如果畫面上真的有,就先遮掉再上傳。

而且範例裡也不要使用真正的 Key。

可以改成:

YOUR_API_KEY

或:

************

今天的 Workflow

今天其實不用做很複雜的 Workflow。

重點放在 HTTP Request 的驗證設定就好:

Manual Trigger
      ↓
HTTP Request
      ↓
Authentication
      ↓
External API
      ↓
Response

如果想接回昨天:

Manual Trigger
      ↓
HTTP Request + Authentication
      ↓
API Data
      ↓
AI
      ↓
Google Sheets

這樣就可以看出 Authentication 在整個流程中的位置。

https://ithelp.ithome.com.tw/upload/images/20261005/20178835LhM6iALSfY.png

圖 4 加入 API Authentication 概念後的 HTTP Request Workflow


今日小結

昨天學會「怎麼呼叫 API」,今天則進一步理解:

不是知道 API 網址,就代表可以直接使用。

很多服務都會要求驗證資訊。

今天主要認識了:

API Key:API 常見的存取憑證形式之一
Token:另一種常見的存取憑證
Authentication:確認身分
Authorization:確認權限
Credentials:在 n8n 中集中管理外部服務連線資訊的重要方式

我覺得今天最大的收穫不是學會某一個 Node,而是開始理解之前很多「為什麼要設定 Credentials」的原因。

從 Day 20 開始,n8n 已經不只是自己內部的 Workflow,而是開始真的跟外部系統交換資料。

下一個問題就是:

既然 API 可以取得外部資料,那能不能讓 Workflow 每天自己去抓資料,完全不用我按 Execute?

前面學過的 Schedule Trigger 終於可以再次派上用場。


上一篇
Day 20|n8n 怎麼跟其他服務溝通?第一次用 HTTP Request 串接 API
下一篇
Day 22|不用自己按 Execute!Schedule Trigger + API 打造每天自動執行的 Workflow
系列文
30 天打造我的 AI 自動化工作流 共 26 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言