API Academy
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
HomePetstore APIExplore more APIs
HomePetstore APIExplore more APIs
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
  1. Working with APIs
  • 歡迎
  • 目錄
  • API 學院
    • Get Started
      • 什麼是 API?
      • API 如何運作?
      • 如何呼叫 API?
      • 如何閱讀 API 文件?
      • 章節總結
    • API Fundamentals
      • API 基礎知識:概覽
      • 方法與路徑
      • 參數
      • 請求 Body
      • 回應
      • API 規格與 OAS
      • 章節總結
    • Working with APIs
      • 使用 API:概覽
      • 根據規格發送請求
      • 環境與變數
      • 串聯多個端點
      • 處理 Auth
      • 處理 API 簽名
      • 腳本介紹
      • 章節總結
    • Mocking APIs
      • Mocking API:概覽
      • Smart Mock
      • Mock 預期結果
      • Cloud Mock
      • Mock 腳本
      • 章節總結
    • Designing APIs
      • 設計 API:概覽
      • API 設計介紹
      • 建立您的第一個 API 專案
      • 分析需求並規劃您的 API
      • 設計資料模型
      • 設計端點
      • 使用組件與可重用性
      • 設定與 Auth
      • API 設計指南
      • 章節總結
    • Developing APIs
      • 開發 API:概覽
      • 設定:安裝您的 AI 程式碼助手
      • 快速入門:30 分鐘內從規格到運行的 API
      • 了解生成的程式碼
      • 使用 Apidog 測試您的 API
      • 部署:將您的 API 上線
      • 章節總結
    • Testing APIs
      • 測試 API:概覽
      • 快速入門:您的第一個測試場景
      • 整合測試與資料傳遞
      • 動態值
      • 斷言與驗證
      • 流程控制:If, For, ForEach
      • 資料驅動測試
      • 性能測試
      • 測試報告與分析
      • CI/CD 整合
      • 排程任務與自動化
      • 進階測試策略
      • 章節總結
    • API Documentations
      • API 文件:概覽
      • 發布您的第一個 API 文件
      • 自訂文件外觀
      • 給消費者的互動功能
      • 進階發布設定
      • 管理 API 版本
      • 章節總結
    • Advanced API Technologies
      • 進階 API 技術:概覽
      • GraphQL
      • gRPC
      • WebSocket
      • Socket.IO
      • Server-Sent Events
      • SOAP
      • 章節總結
    • API Lifecycle
      • API 生命周期:概覽
      • API 生命周期的階段
      • API 治理
      • API 安全最佳實踐
      • 監控與分析
      • API 版本策略
      • API 的未來
      • 章節總結
    • API Security
      • API 安全性:概覽
      • API 安全性基礎知識
      • 身份驗證 vs. 授權
      • 了解 OAuth 2.0 和 OpenID Connect
      • JSON Web Tokens (JWT)
      • OWASP API 安全 Top 10
      • 加密與 HTTPS
      • 章節總結
    • API Tools
      • API 工具:概覽
      • API 工具的演變
      • API Clients
      • 命令列工具 (cURL, HTTPie)
      • API 設計和文件工具
      • API Mocking 工具
      • API 測試工具
      • 一體化 API 平台
      • 章節總結
    • API Gateway
      • API Gateway:概覽
      • 什麼是 API Gateway?
      • API Gateway 的關鍵功能
      • API Gateway vs 負載平衡器 vs 服務網格
      • 流行 API Gateway 解決方案
      • BFF (Backend for Frontend) 模式
      • 章節總結
HomePetstore APIExplore more APIs
HomePetstore APIExplore more APIs
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
  1. Working with APIs

處理 Auth

大多數現實世界的 API 都需要驗證,以確保只有授權使用者才能存取受保護的資源。當您嘗試在沒有適當驗證的情況下存取受保護的端點時,通常會收到 401 Unauthorized 錯誤。
在本文中,我們將學習如何在 Apidog 中處理驗證,以 Pet Store API 為例。我們將介紹如何登入、獲取驗證 Token,並使用該 Token 存取受保護的端點。

1. 什麼是 API 驗證?#

驗證 (Authentication) 是驗證您的身分的過程。當您發出 API 請求時,伺服器需要知道您有權存取您正在請求的資源。
Pet Store API 支援多種驗證方法:
Bearer Token (JWT):一種基於 Token 的驗證,您在請求標頭中包含 Token
OAuth 2.0:支援不同流程的更複雜授權框架
對於本教學,我們將重點關注 Bearer Token 驗證,這是最常見的方法之一。

2. 驗證流程#

典型的驗證流程如下運作:
1.
登入:將您的憑證(使用者名稱和密碼)發送到登入端點
2.
接收 Token:伺服器回應一個驗證 Token
3.
使用 Token:在後續請求中包含 Token 以存取受保護的端點
在 Pet Store API 中:
登入端點:POST /user/login — 接受使用者名稱和密碼,返回 Token
受保護的端點:如 POST /pets、PUT /pets/{id} 和 DELETE /pets/{id} 等端點需要驗證

3. 步驟 1:登入並獲取 Token#

讓我們從登入獲取驗證 Token 開始。

發送登入請求#

1.
在您的 Apidog 專案中打開 "Login" 端點 (POST /user/login)。
2.
切換到 "Run" 分頁。
3.
在請求 Body 中,輸入您的憑證:
{
  "username": "johndoe",
  "password": "securePassword123"
}
4.
點擊 "Send" 執行登入請求。
5.
登入成功後,您將收到類似以下的回應:
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "expiresAt": "2024-12-31T23:59:59Z"
}
token 欄位包含您後續請求所需的驗證 Token。

將 Token 提取為變數#

要在其他請求中使用此 Token,我們需要提取它並將其儲存為變數:
1.
在 Run 分頁中,向下捲動到 Post Processors 部分。
2.
點擊 "Add PostProcessor" 並選擇 "Extract Variable"。
3.
配置提取:
Variable Name:auth_token
Variable Scope:選擇 "Global Variables Shared within Project"
Extraction Source:選擇 "Response JSON"
JSONPath Expression:輸入 $.token 以從回應中提取 Token
image.png
4.
點擊 "Save"。
5.
再次發送請求。請求完成後,Token 將儲存在 {{auth_token}} 變數中。

4. 步驟 2:在受保護的端點中使用 Token#

現在我們已將 Token 儲存在變數中,我們可以使用它來存取受保護的端點。讓我們嘗試建立新寵物,這需要驗證。

配置 Bearer Token 驗證#

1.
在您的 Apidog 專案中打開 "Create a pet" 端點 (POST /pets)。
2.
切換到 "Run" 分頁。
3.
在 Authorization 部分(通常位於 URL 欄下方),點擊 Authorization 分頁。
4.
從 Type 下拉選單中選擇 "Bearer Token"。
5.
在 Token 欄位中,輸入:{{auth_token}}
image.png
Apidog 將自動將其格式化為:
Authorization: Bearer {{auth_token}}
當您發送請求時,Apidog 將用實際的 Token 值替換 {{auth_token}}。

發送經過驗證的請求#

1.
填寫請求 Body(您可以使用 "Auto-generate" 功能或手動輸入值)。
2.
點擊 "Send" 建立寵物。
3.
如果驗證成功,您將收到帶有寵物詳細資訊的 201 Created 回應。
如果您看到 401 Unauthorized 錯誤,這意味著:
Token 可能已過期(Token 通常有過期時間)
Token 未正確提取
Token 格式不正確
在這種情況下,請嘗試再次登入以獲取新的 Token。

5. 查看實際請求#

要驗證 Token 是否正確包含,您可以檢查實際請求:
1.
發送請求後,切換到回應面板中的 "Actual Request" 分頁。
2.
查看 Headers 部分。您應該看到:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
這確認了 Apidog 在發送請求時正確地用實際 Token 值替換了 {{auth_token}}。

6. 在不同級別設定驗證#

在 Apidog 中,您可以在不同級別設定驗證:

請求級別#

為特定端點設定驗證(如我們上面所做)。當不同端點需要不同驗證方法時,這很有用。

資料夾/模組級別#

為整個資料夾或模組設定驗證。該資料夾中的所有端點將繼承驗證設定。當一組中的所有端點需要相同的驗證時,這很有用。
1.
右鍵點擊專案樹狀結構中的資料夾。
2.
選擇 "Settings" 或 "Edit"。
3.
前往 Authorization 分頁。
4.
配置驗證(例如,使用 {{auth_token}} 的 Bearer Token)。
5.
該資料夾中的所有端點將自動使用此驗證。

全域級別#

為整個專案設定全域驗證。當所有端點需要相同的驗證方法時,這很有用。

7. 其他驗證類型#

雖然我們專注於 Bearer Token 驗證,但 Apidog 支援許多其他驗證類型:
API Key:在標頭或查詢參數中新增鍵值對
Basic Auth:發送使用者名稱和密碼(Base64 編碼)
OAuth 2.0:用於更複雜的授權流程
Digest Auth:挑戰-回應驗證
還有更多...
配置過程類似:在 Authorization 分頁中選擇驗證類型並提供必要的憑證(最好使用變數以確保安全)。

8. 關鍵重點#

驗證 在存取受保護的 API 端點時驗證您的身分。
Bearer Token 是一種常見的驗證方法,您在 Authorization 標頭中包含 Token。
登入流程:發送憑證 → 分收 Token → 在後續請求中使用 Token。
使用 Post Processors 從登入回應中 提取 Token 並將它們儲存為變數。
在 Authorization 部分 使用變數(如 {{auth_token}})以自動在請求中包含 Token。
根據您的需要,在請求、資料夾或全域級別 設定驗證。
檢查實際請求 以驗證驗證標頭是否正確包含。
將敏感憑證(如 Token)儲存在變數中,而不是硬編碼。

透過正確處理驗證,您可以安全地存取受保護的 API 端點並構建需要授權的完整工作流程。這對於使用保護敏感資源和操作的現實世界 API 至關重要。
繼續閱讀 → 處理 API 簽名
Modified at 2025-12-29 09:35:19
Previous
串聯多個端點
Next
處理 API 簽名
Built with