【问题标题】:How to do a GET request with node.js passing a JWT token in header如何使用 node.js 在标头中传递 JWT 令牌来执行 GET 请求
【发布时间】:2020-06-13 12:58:44
【问题描述】:

我一直在尝试向我的服务器发出 GET 请求,该服务器在端口 4000 上本地运行。

我生成了一个 JWT 令牌并在 header 中传递如下

var request = require('request');
var options = {
  'method': 'GET',
  'url': 'localhost:4000',
  'headers': {
    'JWT': '<JWT PASTED HERE>',
    'Content-Type': 'application/json'
  }
};
request(options, function (error, response) { 
  if (error) throw new Error(error);
  console.log(response.body);
});

但我不断得到


{"errors":[{"title":"invalid_request","id":"Requesting stuff","meta":{"server-time":1591980353},"errorCode":"bad-request","status":400,"detail":"This JWT has invalid path parameter"}],"error_description":"This JWT has invalid path parameter","error":"invalid_request"}

我的 JWT 已正确创建,我在 https://jwt.io/ 中验证了它

是不是因为 node.js 中不推荐使用 'request' 模块?

还有其他方法可以实现以下目标吗?

【问题讨论】:

    标签: node.js authentication get jwt


    【解决方案1】:

    试试这个

    var request = require('request');
    var options = {
      'method': 'GET',
      'url': 'localhost:4000',
      'headers': {
        'Authorization': 'Bearer <JWT PASTED HERE>',
        'Content-Type': 'application/json'
      }
    };
    request(options, function (error, response) { 
      if (error) throw new Error(error);
      console.log(response.body);
    });
    

    var options = {
      'method': 'GET',
      'url': 'localhost:4000',
      'headers': {
        'Authorization': 'JWT <JWT PASTED HERE>',
        'Content-Type': 'application/json'
      }
    };
    

    Bearer 或 JWT 取决于它在后端的定义方式

    【讨论】:

    • 试过这个,它给出了 {"errors":[{"title":"unauthorized_client","id":"Requesting stuff","meta":{"server-time":1592090885} ,"errorCode":"unauthorized-client","status":401,"detail":"在标头或查询字符串中找不到 jwt 的定义。"}],"error_description":"在标头中找不到 jwt 的定义或查询字符串。","error":"unauthorized_client"}
    • 是的,所以它正在接受授权标头并正在寻找 JWT 令牌,这就是它抛出 401 状态代码的原因,请在 'headers': { 'Authorization': 'Bearer &lt;JWT PASTED HERE&gt;', 'Content-Type': 'application/json' } 之前尝试 Bearer 如果这不起作用尝试直接将 JWT 令牌粘贴到 Authorization@ 987654324@这取决于您如何从后端服务器访问令牌
    猜你喜欢
    • 2022-11-10
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    • 2017-11-24
    • 2021-08-16
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多