[英]Basic Authentication for HTTP request in AWS Lambda node.js
我在我的 AWS Lambda function 中有一個 http 請求,使用 Z28A3689BE95C88DD548E7A37DB516AB0。 該代碼工作正常,但是,我想訪問需要用戶名/密碼身份驗證的 URL。 如何在我的代碼中實現它?
function httprequest() {
return new Promise((resolve, reject) => {
const options = {
host: 'api.plos.org',
path: '/search?q=title:DNA',
port: 443,
method: 'GET'
};
const req = http.request(options, (res) => {
if (res.statusCode < 200 || res.statusCode >= 300) {
return reject(new Error('statusCode=' + res.statusCode));
}
var body = [];
res.on('data', function(chunk) {
body.push(chunk);
});
res.on('end', function() {
try {
body = JSON.parse(Buffer.concat(body).toString());
} catch(e) {
reject(e);
}
resolve(body);
});
});
req.on('error', (e) => {
reject(e.message);
});
req.end();
});
}
您需要包含授權 header:您可以通過 base64 編碼“用戶名:密碼”來制作一個
function httprequest() {
return new Promise((resolve, reject) => {
const username = "john";
const password = "1234";
const auth = "Basic " + new Buffer(username + ":" + password).toString("base64");
const options = {
host: 'api.plos.org',
path: '/search?q=title:DNA',
port: 443,
headers: { Authorization: auth},
method: 'GET'
};
const req = http.request(options, (res) => {
if (res.statusCode < 200 || res.statusCode >= 300) {
return reject(new Error('statusCode=' + res.statusCode));
}
var body = [];
res.on('data', function(chunk) {
body.push(chunk);
});
res.on('end', function() {
try {
body = JSON.parse(Buffer.concat(body).toString());
} catch(e) {
reject(e);
}
resolve(body);
});
});
req.on('error', (e) => {
reject(e.message);
});
req.end();
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.