基本認証がある場合にNode.jsでhttp.clientを使用する方法 質問する

基本認証がある場合にNode.jsでhttp.clientを使用する方法 質問する

タイトル通り、どうすればいいでしょうか?

これが私のコードです:

var http = require('http');

// to access this url I need to put basic auth.
var client = http.createClient(80, 'www.example.com');

var request = client.request('GET', '/', {
    'host': 'www.example.com'
});
request.end();
request.on('response', function (response) {
  console.log('STATUS: ' + response.statusCode);
  console.log('HEADERS: ' + JSON.stringify(response.headers));
  response.setEncoding('utf8');
  response.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
  });
});

ベストアンサー1

Authorizationヘッダーにフィールドを設定する必要があります。

Basicこの場合の認証タイプと、 username:passwordBase64 でエンコードされる組み合わせが含まれます。

var username = 'Test';
var password = '123';
var auth = 'Basic ' + Buffer.from(username + ':' + password).toString('base64');
// new Buffer() is deprecated from v6

// auth is: 'Basic VGVzdDoxMjM='

var header = {'Host': 'www.example.com', 'Authorization': auth};
var request = client.request('GET', '/', header);

おすすめ記事