如何在 Postman 中自动获取令牌

Posted

技术标签:

【中文标题】如何在 Postman 中自动获取令牌【英文标题】:How automatically getting token in Postman 【发布时间】:2018-11-27 03:45:17 【问题描述】:

我使用 Postman 桌面应用程序进行 Web API 测试。我有很多控制器,每个控制器都需要一个令牌。首先我得到Bearer token,然后将其复制到其他请求中。此令牌有时间限制。我可以自动获取令牌,然后自动将其设置为所有其他请求吗?

【问题讨论】:

liftcodeplay.com/2018/03/18/… 【参考方案1】:

您可以使用 Postman 的令牌名称保存和重复使用令牌。您可以从可用的令牌列表中选择它。

许多情况之一。

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

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

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

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

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

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

【讨论】:

【参考方案2】:

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

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

2 - 在这样的身份验证请求之后添加测试:

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

3 - 只需设置token

当然,如果您在其中一个请求中使用Pre-request Script,您可以在请求之前设置令牌。

【讨论】:

类似的解决方案在这里详述ppolyzos.com/2016/11/20/…【参考方案3】:

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

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

然后编辑你的收藏并在里面设置你的envauthToken

【讨论】:

以上是关于如何在 Postman 中自动获取令牌的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Django 在前端获取 CSRF 令牌以及如何在 Postman 中使用它

如何自动从 Slack 获取访问令牌?

如何使用 Postman 获取 Azure AD 刷新令牌?

求助postman 自动获取登录的 token 和 user

如果每个测试用例的标头都需要新令牌,如何使用 Postman Collection Runner 自动化 Rest apis 测试

Api 调用适用于从 Postman 获取的令牌,但不适用于通过 nodejs 应用程序获取的令牌