授權標頭在 n8n Cloud 上無法運作 - 出現 401 錯誤,但從 curl 可正常運作

描述問題/錯誤/問題

HTTP Request 節點向 Infobip WhatsApp API 發送 401 Unauthorized,儘管已正確配置 Authorization 標頭。使用相同的 API 金鑰、標頭和主體從終端透過 curl 發送相同的請求可以完美執行。

執行日誌顯示「authorization」:「hidden」— 標頭值似乎在發送到 API 之前被清空或損毀。

我已嘗試過:Header Auth 憑證、使用 JSON 的自訂 Auth 憑證、Auth 設為 None 的手動標頭、標頭值的表達式模式 — 所有都返回 401。使用相同金鑰從同一台機器執行的 curl 每次都返回 200。

這似乎是 GitHub issues #12596、#14615、#17655 中報告的相同 __n8n_BLANK_VALUE 憑證重設錯誤。

錯誤訊息是什麼(如有)?

401 - "{"requestError":{"serviceException":{"messageId":"UNAUTHORIZED","text":"Invalid login details"}}}"

請分享您的工作流程

新使用者無法上傳附件:(

分享最後一個節點返回的輸出

{
"headers": {
"authorization": "hidden",
"content-type": "application/json",
"accept": "application/json,text/html,application/xhtml+xml,application/xml,text/;q=0.9, image/;q=0.8, /;q=0.7"
},
"method": "POST",
"uri": "``https://3v16p1.api.infobip.com/whatsapp/1/message/text``",
"json": false
}

您的 n8n 設定資訊

  • n8n 版本: 2.28.4
  • 資料庫(預設:SQLite): 預設
  • n8n EXECUTIONS_PROCESS 設定(預設:own、main): 預設
  • 執行 n8n 的方式(Docker、npm、n8n cloud、桌面應用程式): n8n cloud
  • 作業系統: cloud

@Danijel_Domjanovic 日誌中的 authorization: hidden 不能證明該值被清除了——n8n 在執行檢視中隱藏了標頭值,所以可能只是編輯。唯一知道實際發送的內容的方式是回顯它:將 http 請求指向 webhook.site URL 並讀取它收到的 authorization 標頭。blank 或 __n8n_BLANK_VALUE = 是的,那是你發現的 bug。完整的正確值 = 不是 n8n 丟棄它,檢查 App 前綴 infobips 金鑰是否完整。

那是個好主意,我檢查了什麼內容會傳送到 webhook,n8n 這邊一切正常。這可能是 Infobips 的某種內部安全政策,因為我從我們網路之外測試時失敗了。感謝你的幫助:)

@Danijel_Domjanovic 是的,那就是 Infobip 那邊的 IP 允許清單。n8n 雲端使用輪流轉換的資料中心 IP 輸出,所以你無法直接將其加入白名單。最簡單的解決方案是透過你自己控制的靜態 IP 代理(一個小型 VPS)路由呼叫,並在 Infobip 中將該單一 IP 加入允許清單。

歡迎 @Danijel_Domjanovic

IP 白名單是一個可能的原因,但執行日誌中的「hidden」值值得單獨調查 — 它指向認證空值問題,而不僅僅是 IP 過濾。快速排除的方法是:將 HTTP Request 節點切換為使用硬編碼的 Authorization 標頭(將 Auth 設為 None,在 Headers 標籤中手動新增標頭,並直接輸入令牌,而不是從認證中取用)。如果返回 200,那麼問題在於認證本身,而不是 IP。之後,您可以從頭開始重新建立認證,而不是編輯現有認證,因為 __n8n_BLANK_VALUE bug 通常在編輯時存留,但重新建立時不會。