首页 > 解决方案 > 如何使用 node.js 在标头中传递 JWT 令牌来执行 GET 请求

问题描述

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

我生成一个 JWT 令牌并将其传递到标头中,如下所示

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 中不推荐使用“请求”模块吗?

还有另一种方法可以实现以下目标吗?

标签: node.jsauthenticationgetjwt

解决方案


试试这个

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 取决于它在后端的定义方式


推荐阅读