首页 文章

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

提问于
浏览
119

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

postman screenshot

我的问题如下:

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

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

9 回答

  • 4

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

    授权:持票人TOKEN_STRING

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

  • 219

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

    Postman

    Update:

    邮差团队将"Bearer token"添加到"authorization tab":
    Updated postman

  • 112

    我在这个问题中添加了一个有趣的提示,可以帮助你们测试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

  • 32

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

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

    我设法最终通过使用:

    Authorization: jwt <token>
    

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

  • 0

    Here is how to set token this automatically

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

    enter image description here

    然后进行身份验证页面

    enter image description here

  • 0

    不知何故邮递员不适合我 . 我不得不使用一个名为RESTED的chrome扩展程序 .

  • 7

    我按照莫普林提到的方式做了 . 但是在我的情况下,服务在响应头中发送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->授权值 - > {}

  • 0

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

    Headers 字段应该放 Authentication 而不是 Authorization

    enter image description here

    AAM在他们的documentation中提到了它,

    注意! AAM不使用标准的Authorization标头,因为它被大多数Apache服务器跳过 . ...


    希望它可以帮到某人!谢谢你的其他答案帮助我了!

  • 0
    • 打开邮递员 .

    • 转到"header"字段 .

    • 那里可以看到"key value"空白 .

    • 在密钥类型"Authorization"中 .

    • 在值类型"Bearer(space)your_access_token_value"中 .

    完成!

相关问题