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

Dio*_*Dan 158 express jwt postman

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

邮差截图

我的问题如下:

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

2)我需要基于64编码令牌吗?我以为我可以把令牌送回来.

Mic*_*len 265

对于请求标题名称,只需使用授权.在令牌之前放置承载者.我刚试了一下,它对我有用.

授权:持票人TOKEN_STRING

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

  • 正如澄清一样,"Header"字段变为授权,"Value"字段变为Bearer [WHITESPACE] <your-code-here> (59认同)
  • 查看http://jwt.io/.有一个部分可以粘贴JWT并查看其解码内容,这是查看最新情况的最佳方式.服务器密钥字符串用于生成令牌的最后一部分.JWT只签署有效载荷不加密,即你可以解码字符串的第1部分和第2部分,但没有秘密就无法验证它.http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html (5认同)
  • 有人可以详细说明为什么我们需要在JWT之前放置Bearer吗?这是服务器的某种信号,这是JWT吗? (4认同)
  • 这只是惯例 - 你可以在这里找到所有细节:https://jwt.io/introduction/ (3认同)

pra*_*thv 129

这是一个图像,如果它有帮助:)

邮差

更新:

邮递员团队将"Bearer token"添加到"授权标签": 更新邮差


Pab*_*ios 40

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

它实际上非常简单.

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

Authorization: Bearer TOKEN_STRING
Run Code Online (Sandbox Code Playgroud)

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

Authorization: Bearer {{jwt_token}}
Run Code Online (Sandbox Code Playgroud)

在Postman上:然后在postman中创建一个全局变量为jwt_token = TOKEN_STRING.

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

var data = JSON.parse(responseBody);
postman.clearGlobalVariable("jwt_token");
postman.setGlobalVariable("jwt_token", data.jwt_token);
Run Code Online (Sandbox Code Playgroud)

我猜你的api将响应中的令牌作为json返回为:{"jwt_token":"TOKEN_STRING"},可能存在某种变化.

在第一行,您将响应添加到数据varibale.清理全局并分配值.

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

希望这个提示有所帮助


编辑
需要阅读的内容

关于Postman的测试:测试示例

命令行:纽曼

CI:与Jenkins整合

好博文:掌握api测试自动化


Vuc*_*cko 9

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

{
    "description": "Unsupported authorization type",
    "error": "Invalid JWT header",
    "status_code": 401
}
Run Code Online (Sandbox Code Playgroud)

我设法最终通过使用:

Authorization: jwt <token>
Run Code Online (Sandbox Code Playgroud)

认为它可以为遇到同样事情的人节省一些时间.

  • 我在使用“Bearer &lt;token&gt;”的“django”中获得了“未提供身份验证凭据”。用`jwt &lt;token&gt;`解决。感谢您的解决方案 (2认同)

Adi*_*Adi 7

如果您想使用邮递员,正确的方法是使用标题

关键:授权

值:jwt {令牌}

就如此容易。


Eme*_*bah 6

以下是如何自动设置令牌

在您的登录/身份验证请求上

在此输入图像描述

然后进行身份验证页面

在此输入图像描述


小智 5

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

完毕!


cod*_*oda 5

在此输入图像描述

其他一切即。Params、Authorization、Body、Pre-request Script、Tests为空,只需打开Headers选项卡并添加,如图所示。GET 请求也是如此。