【问题标题】:How to add Authorization to node.js POST request如何向 node.js POST 请求添加授权
【发布时间】:2022-01-18 19:53:22
【问题描述】:

我正在设置 POST 请求

var request = {
        host: endpoint,
        method: 'POST',
        path: '/_bulk',
        body: body,
        headers: {
            'Content-Type': 'application/json',
            'Host': endpoint,
            'Content-Length': Buffer.byteLength(body),
            'X-Amz-Security-Token': process.env.AWS_SESSION_TOKEN,
            'X-Amz-Date': datetime,
        }
    };

我需要使用用户名和密码添加授权,这样做的正确方法和语法是什么?

【问题讨论】:

  • 这是一个非常大的话题。基本上,您创建一个令牌并在每个请求上发送它。结帐bearer 令牌或json-webtoken。我建议搜索已经编写的 auth 模块,例如 passport 或类似的。

标签: node.js amazon-web-services post aws-lambda


【解决方案1】:

为此,您可以使用身份验证密钥,也可以从用户名和密码创建一个基本令牌,然后在标头中传递该令牌。

const username = 'username';
const password = 'password';

var request = {
    host: endpoint,
    method: 'POST',
    path: '/_bulk',
    body: body,
    headers: {
        'Content-Type': 'application/json',
        'Host': endpoint,
        'Content-Length': Buffer.byteLength(body),
        'X-Amz-Security-Token': process.env.AWS_SESSION_TOKEN,
        'X-Amz-Date': datetime,
    },
    auth: {
        'username': username,
        'password': password
    }
};

或者您可以从用户名和密码创建一个基本令牌。并将该令牌放在针对授权密钥的标头中。

const username = 'username'; 
const password = 'password'; 
const encodedBase64Token = Buffer.from(`${username}:${password}`).toString('base64'); 
const authorization = `Basic ${encodedBase64Token}`;
var request = {
    host: endpoint,
    method: 'POST',
    path: '/_bulk',
    body: body,
    headers: {
        'Content-Type': 'application/json',
        'Host': endpoint,
        'Content-Length': Buffer.byteLength(body),
        'X-Amz-Security-Token': process.env.AWS_SESSION_TOKEN,
        'X-Amz-Date': datetime,
        'Authorization': authorization,
    }
};

【讨论】:

    猜你喜欢
    • 2021-10-17
    • 2019-01-10
    • 2020-03-29
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 2022-08-20
    • 1970-01-01
    • 2017-01-04
    相关资源
    最近更新 更多