如何 post jwt 令牌以及使用 aws lambda 通过 nodejs 发出的请求

How to post jwt token along with a request via nodejs using aws lambda

我有以下代码可以正确地点击远程 API 并按预期返回结果。

const http = require('http');
exports.handler = async (event) => {
    let dataString = '';
    
    const response = await new Promise((resolve, reject) => {
        const req = http.get("url", function(res) {
          res.on('data', chunk => {
            dataString += chunk;
          });
          res.on('end', () => {
            resolve({
                statusCode: 200,
                body: JSON.stringify(JSON.parse(dataString), null, 4)
            });
          });
        });
        
        req.on('error', (e) => {
          reject({
              statusCode: 500,
              body: 'Something went wrong!'
          });
        });
    });
    
    return response;
};

但我必须使用 jwt 令牌才能正确命中此 api。我该怎么做?

您使用 Authorization header:

传递 JWT 令牌
const http = require('http');
exports.handler = async (event) => {
    let dataString = '';
    const token = "...." // <- your JWT token
    
    const response = await new Promise((resolve, reject) => {
        const options = {
            "headers": {"Authorization": "Bearer " + token}
        }
        const req = http.get("url", options, function(res) { [...] }
    });
    
    return response;
};

不要在生产代码中对令牌进行硬编码。要么在事件中传递它,要么在环境变量中设置它,要么从 SSM 加载它,要么使用 AppConfig。