如何在Postman中自动获取token

问题描述 投票:0回答:5

我使用 Postman 桌面应用程序进行 Web API 测试。我有很多控制器,每个控制器都需要一个令牌。首先我得到

Bearer token
然后将其复制到其他请求。该令牌有时间限制。我可以自动获取令牌,然后自动将其设置为所有其他请求吗?

rest api testing postman
5个回答
19
投票

好的,我刚刚在邮递员中使用了环境。

1 - 使用令牌创建新环境。

2 - 在身份验证请求后添加测试,如下所示:

var jsonData = JSON.parse(responseBody);
var token = jsonData._token;
postman.setEnvironmentVariable("token", token);

3 - 只需设置

{{token}}

当然,如果您在其中一个请求中使用

Pre-request Script
,您可以在请求之前设置令牌。


3
投票

以下步骤:

1。在 Postman 上创建一个环境。示例:test_env

2。创建一个环境变量。示例:jwtToken

3.选择环境,进入token API

4。在 Headers 中将 Content-Type 设置为 application/json

5。转到 Postman 中的“测试”选项并编写脚本:

if(pm.response.code === 200) {
    var my_token_response = JSON.parse(responseBody); 
    postman.setEnvironmentVariable("jwtToken", "Bearer "+my_token_response.access);
}


2
投票

在邮递员的测试选项卡中为您的登录请求编写以下代码。

if(pm.response.code === 200) {
    pm.environment.set('authToken', pm.response.json().token)
}

然后编辑您的收藏并将您的

env
authToken
放入其中。


0
投票

您可以使用 Postman 提供的令牌名称保存并重新使用令牌。您可以从可用令牌列表中选择它。

众多案例之一是。

  1. 使用凭据请求刷新令牌
  2. 使用刷新令牌获取访问令牌
  3. 使用访问令牌对 API 进行身份验证。

步骤 1 有时需要我们登录 API 提供商的接口并获取回调 url 的验证码。一些 API 提供商允许我们通过提供 client_secret 密钥和 client_id 作为授权标头、提供刷新令牌作为请求参数并将提示设置为 none 来覆盖此设置。 来自文档。

提示(可选) none 请求期间不会显示 UI。如果这是不可能的(例如,因为用户必须登录或同意),则会返回错误。

https://identityserver.github.io/Documentation/docsv2/endpoints/authorization.html

您需要了解的有关身份服务器的所有信息都在这里。

https://identityserver.github.io/Documentation/


0
投票

对于我来说,我每次登录都会更新令牌,这些是我进行设置的步骤:

  1. 在邮递员中创建一个环境和一个变量(例如令牌)。您可以设置初始值。
  2. 转到要更新令牌的端点并选择测试选项卡
  3. 写下这几行代码并点击保存,其实可以忽略测试功能:

//set token when status is 200
if(pm.response.code === 200) {

// Extract token from response body
const responseBody = pm.response.json();
const token = responseBody.data.token;
// Save token to environment variable
pm.environment.set('token', token);

}


//You can ignore this
pm.test("Response status code is 200", function () {
    pm.expect(pm.response.code).to.equal(200);
});

pm.test("Token should not be empty", function () {
  const responseData = pm.response.json();
  pm.expect(responseData.data.token).to.not.be.empty;
});

  1. 重用环境中的 token 变量:
© www.soinside.com 2019 - 2024. All rights reserved.