Authorization
对于不少应用,出于安全考虑咱们的接口并不但愿对外公开。这个时候就须要使用受权(Authorization)机制。 受权过程验证您是否具备访问服务器所需数据的权限。 当发送请求时,一般必须包含参数,以确保请求具备访问和返回所需数据的权限。 Postman提供受权类型,能够轻松地在Postman本地应用程序中处理身份验证协议。javascript
Postman中受权协议类型
支持的受权协议类型:java
- 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”。json
“从父”设置的“继承auth”指示默认状况下,该文件夹中的每一个请求都使用父类的受权类型。假如,该集合使用“No Auth”,所以该文件夹使用“No Auth”,这意味着该文件夹中的全部请求将使用“No Auth”安全
若是您但愿将父集合受权类型保留为“No Auth”,但要更新这个特定的文件夹的受权助手,该怎么办呢?您能够编辑文件夹的详细信息,从类型下拉菜单中选择“基本的Auth”,并输入您的凭证。所以,这个文件夹中的每一个请求都依赖于“基本的Auth”,而父集合中的其他请求仍然不使用任何受权。服务器
No Auth
不须要认证,这是默认选中的。post
Basic Auth
这是一种比较简单的受权类型,须要通过验证的用户名和密码才能访问数据资源。这就须要咱们输入用户名和对应的密码。 使用基自己份验证: 第一步:从下拉菜单中选择“Basic Auth”。 第二步:要设置请求的受权参数,请输入您的用户名和密码。加密
第三步:点击发送按钮。spa
目前项目中使用的就是这种认证方式。code
案例:请求URL以下,受权帐号为:blog
-
用户名:
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
的用户均可以使用它来访问数据资源,而无需使用加密密钥。