處理 API 簽名 是一項 進階功能,需要 JavaScript 知識並理解加密概念。大多數 API 使用較簡單的驗證方法,如 Bearer Token。如果您剛開始接觸 API,可以跳過本文。
某些 API 需要 簽名驗證 以確保請求的完整性和真實性。API 簽名是從請求參數使用密鑰生成的加密雜湊。伺服器驗證簽名以確保請求未被篡改且來自授權來源。在本文中,我們將學習如何使用 前置處理器腳本 和 公共腳本 在 Apidog 中處理 API 簽名,以自動生成並將簽名新增到您的請求中。
1. 什麼是 API 簽名?#
API 簽名 是從您的請求參數和密鑰生成的密碼學數值。它的用途包括:簽名如何運作#
1.
收集參數:收集所有請求參數(查詢參數、Body 參數等)
2.
排序和連接:按名稱對參數進行排序,並以特定格式連接它們
3.
新增密鑰:將您的密鑰與加密演算法(如 HMAC-SHA256)一起使用
伺服器執行相同的計算並比較結果。如果它們匹配,則請求有效。
2. 為什麼使用腳本進行簽名?#
Apidog 允許您使用 前置處理器腳本 自動化此過程,該腳本在發送每個請求之前運行。您可以建立一個實現簽名邏輯的 公共腳本,並在多個端點重複使用它。
3. 真實範例:HMAC-SHA256 簽名#
許多現實世界的 API 使用 HMAC-SHA256 (Hash-based Message Authentication Code with SHA-256) 進行簽名驗證。這是 Stripe(用於 webhook)、GitHub(用於 webhook 簽名)和許多雲端服務提供商使用的廣泛採用的標準。HMAC-SHA256 如何運作#
1.
收集參數:收集所有請求參數(查詢參數、Body 參數、時間戳等)
2.
排序參數:按字母順序(ASCII 順序)對參數名稱進行排序
3.
構建簽名串:以 key=value 格式連接參數,並使用 & 連接
5.
生成 HMAC:使用 HMAC-SHA256 演算法和您的密鑰生成簽名
範例計算#
api_key: your_api_key_12345
步驟 1:按字母順序排序參數:action, api_key, resource, timestamp步驟 2:構建簽名串:action=create&api_key=your_api_key_12345&resource=pet×tamp=1633046400步驟 3:使用密鑰 your_secret_key 生成 HMAC-SHA256:HMAC-SHA256("action=create&api_key=your_api_key_12345&resource=pet×tamp=1633046400", "your_secret_key")
步驟 4:將簽名作為查詢參數或在 Authorization 標頭中新增到請求中。
4. 逐步指南#
現在讓我們在 Apidog 中實作簽名生成。我們將建立一個自動生成並將簽名新增到您的請求中的公共腳本。步驟 1:設定環境變數#
1.
打開 Environment Management(點擊右上角的 ≡ 圖示)。
2.
選擇您的環境(例如 "Production" 或 "Sandbox")。
3.
Variable Name: SECRET_KEY
Current Value: 您的 API 密鑰(由 API 提供商提供)