Answers:
对于请求标头名称,只需使用授权。将Bearer放置在令牌之前。我只是尝试了一下,它对我有用。
授权:承载TOKEN_STRING
JWT的每个部分都是base64url编码的值。
我向这个问题添加了一些有趣的提示,可能会帮助您测试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返回为:{“ jwt_token”:“ TOKEN_STRING”},可能会有一些变化。
在第一行上,将响应添加到数据变量。清理您的全局并分配值。
因此,现在您可以将令牌放在全局变量上,这使得在所有端点上易于使用Authorization:Bearer {{jwt_token}}的原因。
希望本技巧对您有所帮助。
编辑
一些东西要读
命令行:纽曼
CI:与Jenkins整合
尼斯博客文章:api自动化测试大师
Test
制表符和邮递员编码的概念。您是否建议您开始使用此资源?
Flask
在尝试相同的(Authorization: Bearer <token>
)的前两个解决方案之后,我遇到了相同的问题:
{
"description": "Unsupported authorization type",
"error": "Invalid JWT header",
"status_code": 401
}
我设法通过使用以下方法终于解决了:
Authorization: jwt <token>
认为这可能会节省遇到相同事物的人一些时间。
Authentication credentials were not provided
的django
使用Bearer <token>
。用...解决jwt <token>
。感谢您的解决方案
对于使用wordpress插件Advanced Access Manager打开JWT身份验证的人。
标头字段应放置验证而不是授权
AAM在他们的文档中提到了它,
注意!AAM 不使用标准的Authorization标头,因为大多数Apache服务器会跳过它。...
希望它能对某人有所帮助!谢谢你的其他答案也帮助了我很多!
我按照moplin所说的做。但是在我的情况下,服务在响应标头中发送JWT,作为键“ Authorization”下的值。
Authorization →Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJpbWFsIiwiZXhwIjoxNDk4OTIwOTEyfQ.dYEbf4x5TGr_kTtwywKPI2S-xYhsp5RIIBdOa_wl9soqaFkUUKfy73kaMAv_c-6cxTAqBwtskOfr-Gm3QI0gpQ
我所做的是,在邮递员中将Global变量设置为
键-> jwt
值->等等
在登录请求->“测试”选项卡中,添加
postman.clearGlobalVariable("jwt");
postman.setGlobalVariable("jwt", postman.getResponseHeader("Authorization"));
在其他请求中,选择“标题”标签,然后给
键->授权
值-> {{jwt}}
在Postman最新版本(7 ++)中,授权中可能没有Bearer字段,因此请转到Header选项卡
选择密钥作为授权并在值中写入JWT
Bearer Token
助手,在Authorization
此处添加令牌值(硬编码或作为动态变量)将为Authorization
请求创建相同的标头。