发送JWT令牌在头部与邮差

我正在测试基于以下文章的基于JWT令牌安全性的实现。我已经成功地从测试服务器接收到令牌。我不知道如何有Chrome邮差REST客户端程序在头发送令牌。

邮递员截图

我的问题如下:

1)我是否使用了正确的头名称和/或POSTMAN接口?

2)我需要base64编码令牌吗?我觉得我可以把代币寄回去。

296432 次浏览
对于请求头名称,只需使用授权。 将持票人置于令牌前。

.

.

.

.

授权:承载TOKEN_STRING

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

如果有用的话,这里有一张图片:)

邮差

更新:

邮差团队在“授权”选项卡中增加了“不记名令牌”: 更新的邮递员 < / p >

我在这个问题上补充了一个有趣的小技巧,可以帮助你们测试JWT api。

其实很简单。

当你登录时,在你的Api(登录端点)中,你会立即收到你的令牌,正如@mick-cullen所说,你必须在你的头部使用JWT作为:

Authorization: Bearer TOKEN_STRING

现在,如果你想自动化或只是让你的生活更简单,你可以将令牌保存为全局,你可以在所有其他端点上调用:

Authorization: Bearer \{\{jwt_token}}
在邮递员< p >: 然后在postman中创建一个全局变量jwt_token = TOKEN_STRING.

在您的登录端点: 为了使它有用,在Tests选项卡的开头添加add:

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

我猜你的api在响应上以json形式返回令牌: {"jwt_token":"TOKEN_STRING"},可能会有一些变化

在第一行,您将响应添加到数据变量。 清洁你的全球 并赋值

现在您在全局变量上有了令牌,这使得在所有端点上使用Authorization: holder \{\{jwt_token}}变得很容易。

希望这条建议能有所帮助。


< p >编辑< br >

关于Postman的测试:测试的例子

命令行:纽曼

置信区间:与Jenkins集成

不错的博客文章:掌握API测试自动化

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

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

我最终通过使用:

Authorization: jwt <token>

我想这可能会为遇到同样问题的人节省一些时间。

不知怎么的,邮递员不适合我。 我不得不使用一个名为rest的chrome扩展,它可以工作

我按照moplin提到的那样做了。但是在我的例子中,服务在响应头中发送JWT,作为键“授权”下的值。

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

我所做的是,在邮差中创建一个全局变量为

< p >键- > jwt < br > 价值——> blahblah < / p >

在登录请求->测试选项卡中,添加

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

在其他请求中选择Headers选项卡并给出

键- >授权

价值——> \{\{jwt}}

下面是如何自动设置令牌

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

enter image description here

对于已验证的页面

enter image description here

对于使用wordpress插件高级访问管理器来打开JWT身份验证的人。

Header字段应该放置身份验证而不是授权

enter image description here

AAM在文档中提到过,

< p >注意!AAM 不使用标准授权头,因为它被跳过 大多数Apache服务器. ...


希望它能帮助到一些人!谢谢你的其他回答也帮助了我很多!!

  1. 开放的邮差。
  2. 转到“header”字段。
  3. 这里可以看到“键值”空白。
  4. 输入密钥类型“Authorization”。
  5. 值类型为“承载符(空格)your_access_token_value”。

完成了!

如果你希望使用邮差,正确的方法是使用标题

关键:授权

取值:JWT {token}

就这么简单。

enter image description here

其他一切。参数、授权、正文、预请求脚本、测试是空的,只需打开选项卡并如图所示添加。对于GET请求也是一样的。

在邮差最新版本(7++)中,授权中可能没有承载字段 所以点击Header标签

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