Authorization
對於很多應用,出於安全考慮我們的接口並不希望對外公開。這個時候就需要使用授權(Authorization)機制。
授權過程驗證您是否具有訪問服務器所需數據的權限。
當發送請求時,通常必須包含參數,以確保請求具有訪問和返回所需數據的權限。
Postman提供授權類型,可以輕松地在Postman本地應用程序中處理身份驗證協議。
Postman中授權協議類型
支持的授權協議類型:
- Inherit auth from parent
- No Auth
- API key
- Bear Token
- Basic Auth
- Digest Auth
- OAuth 1.0
- OAuth 2.0
- Hawk Authentication
- AWS Signature
- NTML Authentication[Beta]
Inherit auth from parent(從父類集成身份驗證)
向集合或文件夾添加授權。
假設您在集合中添加了一個文件夾。在授權選項卡下,默認的授權類型將被設置為“從父類繼承auth”。
“從父”設置的“繼承auth”指示默認情況下,該文件夾中的每個請求都使用父類的授權類型。假如,該集合使用“No Auth”,因此該文件夾使用“No Auth”,這意味着該文件夾中的所有請求將使用“No Auth”
如果您希望將父集合授權類型保留為“No Auth”,但要更新這個特定的文件夾的授權助手,該怎么辦呢?您可以編輯文件夾的詳細信息,從類型下拉菜單中選擇“基本的Auth”,並輸入您的憑證。因此,這個文件夾中的每個請求都依賴於“基本的Auth”,而父集合中的其余請求仍然不使用任何授權。
No Auth
不需要認證,這是默認選中的。
Basic Auth
這是一種比較簡單的授權類型,需要經過驗證的用戶名和密碼才能訪問數據資源。這就需要我們輸入用戶名和對應的密碼。
使用基本身份驗證:
第一步:從下拉菜單中選擇“Basic Auth”。
第二步:要設置請求的授權參數,請輸入您的用戶名和密碼。
第三步:點擊發送按鈕。
目前項目中使用的就是這種認證方式。
案例:請求URL如下,授權賬號為:
-
用戶名:
username
-
密碼:
password
-
授權協議為:
Basic Auth
https://{{beta}}/oauth2/token?grant_type=password&sms_verify=true
-
如果不輸入用戶密碼,直接GET請求,則會返回提示:
Unauthorized
-
輸入用戶名密碼,選擇
Basic auth
授權類型,則返回如下結果
{
"access_token": "dda7b55f-574d-4de6-9f62-d849d5894ba9",
"token_type": "bearer",
"refresh_token": "1da3f4fb-dbf7-40d6-9316-32916f4c0d03",
"expires_in": 3599,
"scope": "READ WRITE"
}
在postman
中這里使用的是保存登錄的token
,在下一個接口中使用該token
信息。
代碼如下:
if(responseCode.code === 200){
// 判斷是否存在 'access_token' 值
tests["Body matches access_token"] = responseBody.has("access_token");
//保存響應結果json
var jsonData = JSON.parse(responseBody);
//將響應結果中的access_token保存為全局變量hb_access_token
postman.setGlobalVariable("hb_access_token",jsonData.access_token);
//打印請求參數
tests[`[INFO] Request params: ${JSON.stringify(request.data)}`] = true;
// tests["have result "]=jsonData.hasOwnProperty("error")!==true;
//驗證響應結果中存在access_token
tests["have data "]=jsonData.hasOwnProperty("access_token")===true;
//驗證該接口的響應時間
tests[`[INFO] Response timeout: ${responseTime}`] = responseTime < 6000;
}else{
//接口請求失敗
tests["Waring:Request Failed. Please Fix!"] = false;
}
使用Basic Auth
認完成。在下一個接口中,如何使用已經保存的全局變量access_token
,如圖
Bear Token
Bearer Token
是安全令牌。任何帶有Bearer Token
的用戶都可以使用它來訪問數據資源,而無需使用加密密鑰。