使用Postman在标头中发送JWT标记

时间:2014-07-12 05:26:24

标签: express jwt postman

我根据以下article测试基于JWT令牌的安全性的实现。我已成功从测试服务器收到一个令牌。我无法弄清楚如何让Chrome POSTMAN REST客户端程序在标头中发送令牌。

postman screenshot

我的问题如下:

1)我使用正确的标题名称和/或POSTMAN界面吗?

2)我是否需要对令牌进行64位编码?我以为我可以发回令牌。

12 个答案:

答案 0 :(得分:241)

对于请求标题名称只使用授权。 在令牌之前放置承载者。我只是尝试了它,它对我有用。

授权:持票人TOKEN_STRING

JWT的每个部分都是base64url编码值。

答案 1 :(得分:121)

如果它有帮助,这是一张图片:)

Postman

<强>更新

邮递员团队将“Bearer token”添加到“授权标签”: Updated postman

答案 2 :(得分:37)

我在这个问题中添加了一些有趣的提示,可以帮助你们测试JWT Apis。

实际上非常简单。

当您登录时,在您的Api(登录端点)中,您将立即收到您的令牌,正如@ mick-cullen所说,您必须在标题上使用JWT:

Authorization: Bearer TOKEN_STRING

现在,如果您希望自动化或只是让您的生活更轻松,您可以将测试保存为全局,您可以在所有其他端点上调用:

Authorization: Bearer {{jwt_token}}

邮递员: 然后在邮递员中将全局变量设为jwt_token = TOKEN_STRING。

在您的登录终端上: 要使其有用,请在“测试”选项卡的开头添加:

var data = JSON.parse(responseBody);
postman.clearGlobalVariable("jwt_token");
postman.setGlobalVariable("jwt_token", data.jwt_token);

我猜你的api正在将响应中的令牌作为json返回: {&#34; jwt_token&#34;:&#34; TOKEN_STRING&#34;},可能会有某种变化。

在第一行,您将响应添加到数据varibale。 清洁你的全球 并指定值。

所以现在你在全局变量上有你的令牌,这使你在所有端点上使用授权:Bearer {{jwt_token}}变得容易。

希望这个提示有所帮助。

EDIT
需要阅读的东西

关于Postman的测试:testing examples

命令行:Newman

CI:integrating with Jenkins

好的博文:master api test automation

答案 3 :(得分:9)

我在Flask中遇到了同样的问题,并在尝试了前两个相同的解决方案(Authorization: Bearer <token>)后得到了这个问题:

{
    "description": "Unsupported authorization type",
    "error": "Invalid JWT header",
    "status_code": 401
}

我设法通过使用:

最终解决了它
Authorization: jwt <token>

认为这可能会为遇到同样事情的人节省一些时间。

答案 4 :(得分:6)

以下是如何自动设置令牌

登录/身份验证请求

enter image description here

然后是经过身份验证的页面

enter image description here

答案 5 :(得分:1)

  1. 邮递员
  2. 转到“标题”字段。
  3. 可以看到“键值”空白。
  4. 在密钥类型“授权”中。
  5. 在值类型中为“ Bearer(space)your_access_token_value”。

完成!

答案 6 :(得分:1)

如果您想使用邮递员,正确的方法是像这样使用标头

密钥:授权

值:jwt {token}

就这么简单。

答案 7 :(得分:0)

不知何故邮递员不适合我。 我不得不使用名为RESTED的chrome扩展程序,它确实有效。

答案 8 :(得分:0)

我按照moplin的提法做了。但在我的情况下,服务会将JWT作为响应标头发送,作为“授权”键下的值。

Authorization →Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJpbWFsIiwiZXhwIjoxNDk4OTIwOTEyfQ.dYEbf4x5TGr_kTtwywKPI2S-xYhsp5RIIBdOa_wl9soqaFkUUKfy73kaMAv_c-6cxTAqBwtskOfr-Gm3QI0gpQ

我做的是,在邮递员中创建一个全局变量

  

键 - &GT; JWT
  值 - &GT; blahblah

在登录请求中 - &gt;测试标签,添加

postman.clearGlobalVariable("jwt");
postman.setGlobalVariable("jwt", postman.getResponseHeader("Authorization"));

在其他请求中选择Headers选项卡并提供

  

key-&gt;授权

     

值 - &GT; {{JWT}}

答案 9 :(得分:0)

对于使用wordpress插件Advanced Access Manager打开JWT身份验证的人。

标题字段应设置身份验证,而不是授权

enter image description here

AAM在documentation

中提到了它
  

请注意! AAM 不会使用标准授权标题,因为它被跳过   大多数Apache服务器。 ...

希望它对某人有所帮助!谢谢你的其他答案帮了我很多!!

答案 10 :(得分:0)

enter image description here

其他一切。 Params,授权,正文,预请求脚本,测试为空,只需打开 Headers 标签,然后如图所示添加即可。 GET请求也是如此。

答案 11 :(得分:0)

在Postman最新版本(7 ++)中,授权中可能没有Bearer字段 因此,转到“标题”标签

选择密钥作为授权,并在值中写入JWT