首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在邮递员中自动发送在先前请求中收集的JWT令牌

如何在邮递员中自动发送在先前请求中收集的JWT令牌
EN

Stack Overflow用户
提问于 2019-02-22 09:57:02
回答 1查看 4.5K关注 0票数 4

我正在创建REST (Symfony 4,FOS Rest包),为了测试,我使用了Postman应用程序。问题是,在登录请求时,我得到了JWT令牌,而在以后的每一个请求中,我都必须将它作为授权头的一部分,作为Bearer令牌传递回来。而且,由于每个登录名都会更改此令牌,所以每次登录后(令牌过期时),我必须手动复制/粘贴令牌值。

这能避免,并自动完成吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-22 10:14:15

首先,成功的授权登录调用返回了JWT令牌,它必须存储在某个变量中。当编辑登录请求时,有一个“测试”选项卡。在这里,我们可以将执行请求后执行的JavaScript代码放入其中,因此我们将输入如下代码:

代码语言:javascript
运行
复制
var jsonData = JSON.parse(responseBody);
if(jsonData.token) {
    pm.globals.set("jwt-token", jsonData.token);
}

或者,更短的版本,就像丹尼·戴顿建议的那样:

代码语言:javascript
运行
复制
pm.globals.set("jwt-token", pm.response.json().token)

我们收集响应并将“令牌”值存储到称为“jwt”的全局变量中。

如果您使用较早版本的Postman,则这段代码应该看起来有点不同--存储变量应该如下所示:

代码语言:javascript
运行
复制
postman.setEnvironmentVariable("jwt-token", jsonData.token); 

(在上面的例子中,将环境变量与全局变量进行存储-这两种类型都应该可以工作。使用你所需要的)。

因此,现在将存储令牌值。然后我们必须在其他请求中使用它。编辑必须传递JWT令牌的所有其他请求。转到“授权”选项卡,选择"Bearer“授权类型,对于值,只需输入{jwt}

同样,如果您使用的是较旧版本的邮递员,而没有"Bearer“类型转到”header“选项卡,则添加带有”授权“键的新标头,并将其值设置为Bearer {{jwt}

就这样。现在,您只需执行一次登录请求,JWT令牌将自动用于所有其他请求。

如果您面临一些问题,您可以使用控制台打印调试信息。添加代码,即:

代码语言:javascript
运行
复制
console.log(jsonData.token);

从主菜单转到View -> Show 打开控制台窗口,在那里您将获得console.log输出。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54824469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档