我正在基于以下article测试基于JWT令牌的安全性的实现 . 我已成功从测试服务器收到一个令牌 . 我无法弄清楚如何让Chrome POSTMAN REST客户端程序在标头中发送令牌 .
我的问题如下:
1)我使用正确的 Headers 名称和/或POSTMAN界面吗?
2)我需要基于64编码令牌吗?我以为我可以把令牌送回来 .
对于请求 Headers 名称,只需使用授权 . 在令牌之前放置承载者 . 我刚试了一下,它对我有用 .
授权:持票人TOKEN_STRING
JWT的每个部分都是base64url编码值 .
这是一个图像,如果它有帮助:)
Update:
邮差团队将"Bearer token"添加到"authorization tab":
我在这个问题中添加了一个有趣的提示,可以帮助你们测试JWT Apis .
它实际上非常简单 .
当您登录时,在您的Api(登录 endpoints )中,您将立即收到您的令牌,并且正如@ mick-cullen所说,您必须在标头上使用JWT:
Authorization: Bearer TOKEN_STRING
现在,如果您希望自动化或只是让您的生活更轻松,您可以将测试保存为全局,您可以在所有其他 endpoints 上调用:
Authorization: Bearer {{jwt_token}}
在Postman上:然后在postman中创建一个全局变量为jwt_token = TOKEN_STRING .
在您的登录 endpoints 上:要使其有用,请在“测试”选项卡的开头添加:
var data = JSON.parse(responseBody); postman.clearGlobalVariable("jwt_token"); postman.setGlobalVariable("jwt_token", data.jwt_token);
我猜你的api将响应中的令牌作为json返回为:{“jwt_token”:“TOKEN_STRING”},可能存在某种变化 .
在第一行,您将响应添加到数据varibale . 清理全局并分配值 .
所以现在你在全局变量上有你的令牌,这使你在所有 endpoints 上使用Authorization:Bearer {}变得容易 .
希望这个提示有所帮助
编辑要读的东西
关于Postman的测试:testing examples
命令行:Newman
CI:integrating with Jenkins
好博文:master api test automation
我在 Flask 中遇到了同样的问题,在尝试了前两个相同的解决方案( Authorization: Bearer <token> )之后,得到了这个:
Flask
Authorization: Bearer <token>
{ "description": "Unsupported authorization type", "error": "Invalid JWT header", "status_code": 401 }
我设法最终通过使用:
Authorization: jwt <token>
认为它可以为遇到同样事情的人节省一些时间 .
Here is how to set token this automatically
在您的登录/身份验证请求上
然后进行身份验证页面
不知何故邮递员不适合我 . 我不得不使用一个名为RESTED的chrome扩展程序 .
我按照莫普林提到的方式做了 . 但是在我的情况下,服务在响应头中发送JWT,作为“授权”键下的值 .
Authorization →Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJpbWFsIiwiZXhwIjoxNDk4OTIwOTEyfQ.dYEbf4x5TGr_kTtwywKPI2S-xYhsp5RIIBdOa_wl9soqaFkUUKfy73kaMAv_c-6cxTAqBwtskOfr-Gm3QI0gpQ
我做的是,在邮递员中制作一个全局变量
key-> jwt值 - > blahblah
在登录请求 - >测试选项卡中,添加
postman.clearGlobalVariable("jwt"); postman.setGlobalVariable("jwt", postman.getResponseHeader("Authorization"));
在其他请求中选择Headers选项卡并给出
key->授权值 - > {}
对于使用wordpress插件Advanced Access Manager打开JWT身份验证的人 .
Headers 字段应该放 Authentication 而不是 Authorization
AAM在他们的documentation中提到了它,
注意! AAM不使用标准的Authorization标头,因为它被大多数Apache服务器跳过 . ...
希望它可以帮到某人!谢谢你的其他答案帮助我了!
打开邮递员 .
转到"header"字段 .
那里可以看到"key value"空白 .
在密钥类型"Authorization"中 .
在值类型"Bearer(space)your_access_token_value"中 .
完成!
9 回答
对于请求 Headers 名称,只需使用授权 . 在令牌之前放置承载者 . 我刚试了一下,它对我有用 .
授权:持票人TOKEN_STRING
JWT的每个部分都是base64url编码值 .
这是一个图像,如果它有帮助:)
Update:
邮差团队将"Bearer token"添加到"authorization tab":
我在这个问题中添加了一个有趣的提示,可以帮助你们测试JWT Apis .
它实际上非常简单 .
当您登录时,在您的Api(登录 endpoints )中,您将立即收到您的令牌,并且正如@ mick-cullen所说,您必须在标头上使用JWT:
现在,如果您希望自动化或只是让您的生活更轻松,您可以将测试保存为全局,您可以在所有其他 endpoints 上调用:
在Postman上:然后在postman中创建一个全局变量为jwt_token = TOKEN_STRING .
在您的登录 endpoints 上:要使其有用,请在“测试”选项卡的开头添加:
我猜你的api将响应中的令牌作为json返回为:{“jwt_token”:“TOKEN_STRING”},可能存在某种变化 .
在第一行,您将响应添加到数据varibale . 清理全局并分配值 .
所以现在你在全局变量上有你的令牌,这使你在所有 endpoints 上使用Authorization:Bearer {}变得容易 .
希望这个提示有所帮助
编辑
要读的东西
关于Postman的测试:testing examples
命令行:Newman
CI:integrating with Jenkins
好博文:master api test automation
我在
Flask
中遇到了同样的问题,在尝试了前两个相同的解决方案(Authorization: Bearer <token>
)之后,得到了这个:我设法最终通过使用:
认为它可以为遇到同样事情的人节省一些时间 .
Here is how to set token this automatically
在您的登录/身份验证请求上
然后进行身份验证页面
不知何故邮递员不适合我 . 我不得不使用一个名为RESTED的chrome扩展程序 .
我按照莫普林提到的方式做了 . 但是在我的情况下,服务在响应头中发送JWT,作为“授权”键下的值 .
我做的是,在邮递员中制作一个全局变量
在登录请求 - >测试选项卡中,添加
在其他请求中选择Headers选项卡并给出
对于使用wordpress插件Advanced Access Manager打开JWT身份验证的人 .
Headers 字段应该放 Authentication 而不是 Authorization
AAM在他们的documentation中提到了它,
希望它可以帮到某人!谢谢你的其他答案帮助我了!
打开邮递员 .
转到"header"字段 .
那里可以看到"key value"空白 .
在密钥类型"Authorization"中 .
在值类型"Bearer(space)your_access_token_value"中 .
完成!