当前位置: 首页 > 知识库问答 >
问题:

如何在Postman中自动发送之前请求中收集的JWT令牌

谷翰飞
2023-03-14

我正在创建REST API(Symfony 4,FOS REST捆绑包),为了测试,我正在使用Postman应用程序。问题是,在登录请求时,我获得了JWT令牌,之后,在每个其他请求中,我都必须将其作为授权标头的一部分作为承载令牌传递回去。由于每次登录时该令牌都会发生变化,因此每次登录后(当令牌过期时),我都必须手动复制/粘贴令牌值。

这能以某种方式避免并自动完成吗?

共有1个答案

祝叶五
2023-03-14

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

var jsonData = JSON.parse(responseBody);
if(jsonData.token) {
    pm.globals.set("jwt-token", jsonData.token);
}

或者,更简短的版本,正如丹尼·丹顿(Danny Dainton)所建议的:

pm.globals.set("jwt-token", pm.response.json().token)

我们正在收集响应并将“token”值存储到名为“jwt token”的全局变量中。

如果使用旧版本的Postman,则此代码的外观应该有所不同-存储变量的外观应该如下所示:

postman.setEnvironmentVariable("jwt-token", jsonData.token); 

(在上面的示例中,这里存储为环境变量和全局变量-这两种类型都应该工作。使用您需要的)。

现在,将存储令牌值。然后我们必须将其用于其他请求。编辑必须传递JWT令牌的所有其他请求。转到“Authorization”选项卡,选择“Bearer Token”授权类型,输入{{jwt Token}}作为值。

同样,如果您使用的是旧版本的Postman并且没有“无记名令牌”类型,请转到“标头”选项卡,使用键“授权”添加新标头,并为其值设置无记名{{jwt-Token}}

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

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

console.log(jsonData.token);

从主菜单转到视图-

 类似资料:
  • 我正在Postman中编写测试,我有多个请求分组如下: > 某些测试标题: > 创建用户(一组“预请求”): 发送一些创建用户所需的请求,这些请求是运行测试所必需的 对已创建用户的一些操作(这里我正在测试测试标题中的内容) 一个或多个请求 < li >创建用户(一组“预先请求”,与测试1中相同。): < ul > < li >发送创建用户、运行测试所需的一些请求 一个或多个请求 总的来说,当我想测

  • 我想解码我使用Postman收到的jwt令牌,并在RESTAPI中实现它。我该怎么做?我看到有人发布代码来解码jwt令牌(参考:如何在不使用库的情况下在javascript中解码jwt令牌?)但我不明白在《邮差》里怎么做?解码jwt需要什么url?需要什么标题、授权?

  • 问题内容: 我正在使用Axios从客户端向我的Express.js服务器发送请求。 我在客户端上设置了一个cookie,我想从所有Axios请求中读取该cookie,而无需手动将其手动添加到请求中。 这是我的客户端请求示例: 我试图通过在Express.js服务器中使用以下属性来访问标头或cookie: 他们两个都不包含任何cookie。我正在使用cookie解析器中间件: 如何使Axios自动在

  • 我想在邮政映射中发送路径变量,在邮递员软件中。我选择邮政映射体,然后怎么做?我检查了@RequestParam vs@PathVariable示例,get方法的所有答案,但post方法需要答案。

  • 我试图为我的浏览器创建一个定制的主页。我已经实现了一个API来显示天气,但只有当我按下回车键时才能工作。我想在加载页面时自动显示数据,不按回车键,自动显示布里斯托尔天气,当我键入另一个位置时,api将能够请求和渲染。我尝试了很多方法,比如(删除钩子,改变钩子的初始状态,但似乎没有什么工作)这是我的代码: 我是ReactJS新手,这有点让人困惑,因为在这里我使用同一个文件来编码和渲染,我以前做过这件