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