今天在寫完程式碼作測試的時候遇到了postman報錯,耽誤了一點時間。後面仔細一排查是token資訊有一點錯誤。記錄一下提醒自己以後要仔細一點。postman中報錯401,認證失敗,無法訪問系統資源的原因不光token資訊有誤還有一個原因是認證資訊傳送的位置或格式錯誤。
-
1.未提供正確的身份驗證憑據
-
原因
很多 API 介面需要進行身份驗證,常見的如使用使用者名稱和密碼、Token(令牌)等方式來確認訪問者是否有許可權訪問相應資源。如果在 Postman 中沒有正確設定這些認證資訊或者設定的資訊有誤,伺服器就會判定認證失敗,返回 401 錯誤碼。
- 解決方法
首先,確認目標 API 採用的是哪種認證方式,常見的認證方式包括基本認證(Basic Authentication,輸入使用者名稱和密碼)、Bearer Token 認證、OAuth 認證等。
如果是基本認證,在 Postman 的 “Authorization” 標籤下選擇 “Basic Auth”,然後輸入正確的使用者名稱和ji密碼。
若是 Bearer Token 認證,同樣在 “Authorization” 標籤下選擇 “Bearer Token”,並將有效的 Token 值填入對應的輸入框中。
對於 OAuth 認證等相對複雜些的情況,需要按照對應的流程獲取正確的授權碼等資訊,並在 Postman 中依據介面文件要求準確配置相關引數。
-
2.認證資訊傳送的位置或格式錯誤
-
原因
即使提供了正確的認證憑據,但如果沒有按照介面要求的規範將其傳送給伺服器,伺服器也無法識別並判定認證失敗。比如有的介面要求認證資訊放在請求頭特定欄位裡,有的可能要求放在請求體的某個特定格式的結構中。如果放錯位置或者格式不符合要求,就會出現問題。
- 解決方法
仔細檢視介面文件,明確認證資訊需要在請求中處於什麼位置(是請求頭、請求體還是別的地方)以及具體的格式要求(欄位名稱、大小寫、資料結構等),然後在 Postman 裡相應的地方準確配置好認證資訊。例如,如果要求在請求頭的某個特定欄位裡,就在 Postman 的 “Headers” 選項卡中新增對應的鍵值對來設定好。