Postman 上的授权类型 Bearer Token

Posted

技术标签:

【中文标题】Postman 上的授权类型 Bearer Token【英文标题】:Authorization type Bearer Token on Postman 【发布时间】:2019-01-30 06:10:16 【问题描述】:

我正在尝试使用 Postman 测试一些端点。

所有端点,需要一个可以通过登录获得的令牌。

所以我这样做了:

请求 #1

登录成功后,我可以从响应中访问令牌,然后将该令牌存储在我的全局变量中。

let token = pm.response.json().location
console.log('Token : ', token.split("?token=")[1]);
pm.globals.set("token", token)

我需要将该令牌用作我的请求 #2 的授权类型承载令牌。

我可以将其复制并粘贴到令牌框中,但我试图避免手动执行此操作,有没有办法自动执行此操作,以便我可以按顺序运行这 2 个请求?

【问题讨论】:

您将令牌设置为全局变量对吧?您不能在第二个请求的 Auth 标头中仅使用 Bearer token 吗?该令牌输入仅创建相同的标头。 哦,聪明,我没想到。 【参考方案1】:

不,到目前为止还没有。如果您想获得完整的价值,则必须手动完成,否则您可以将其存储在变量中并直接使用该变量作为令牌。

【讨论】:

【参考方案2】:

首先,创建一个环境(邮递员的右上角 - 下图)这个 不是我建议您为更好地处理变量而做的强制性步骤

我已经修改了脚本以满足您的需要

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("ID", jsonData.Location.split("?token=")[1]);

现在这将导出令牌的值(下面的屏幕截图)

接下来你要做的就是调用请求#2中的变量

这样您就不必每次都手动复制、粘贴到请求 #2 中

【讨论】:

所以基本上是我的评论;)您不需要创建环境文件,因为它已经被设置为全局变量。我还建议摆脱旧式语法并使用pm. * api。 我仍在使用 chrome 扩展,所以“邮递员”语法,也是环境的原因是因为在我的邮递员中我有 2 个生成令牌的 API,我必须使用相同的变量(项目需求),所以我将其映射到不同的环境 我会迁移到 Postman 的独立版本,Chrome 扩展甚至不再积极工作了。它现在是原生应用程序背后的主要版本。

以上是关于Postman 上的授权类型 Bearer Token的主要内容,如果未能解决你的问题,请参考以下文章

OAuth2 资源服务器在与授权服务器通信时应该使用 Basic 还是 Bearer token auth?

每当我发送包含 Bearer 令牌的请求时,ASP.Net Core API 总是返回 401 未授权

如何在 Spring Boot 中使用带有 Bearer Token 和 form-data 的 Rest Template 调用 REST Api

spotify api授权问题

如何在 Postman 的 Oauth2 中使用 id_token 而不是 access_token?

“Bearer”授权标头有啥特殊含义吗?