HTTP Client based on NodeJS: How to authenticate a request?

前端 未结 4 649
迷失自我
迷失自我 2020-12-30 23:01

This is the code I have to make a simple GET request:

var options = {
    host: \'localhost\',
    port: 8000,
    path: \'/restricted\'
};

request = http.g         


        
相关标签:
4条回答
  • 2020-12-30 23:19

    You need to add the Authorization to the options like a header encoded with base64. Like:

    var options = {
        host: 'localhost',
        port: 8000,
        path: '/restricted',
        headers: {
         'Authorization': 'Basic ' + new Buffer(uname + ':' + pword).toString('base64')
       }         
    };
    
    0 讨论(0)
  • 2020-12-30 23:36

    I suggest to use request module for that, it support wide range functionalities including HTTP Basic Authentication.

    var username = 'username',
        password = 'password',
        url = 'http://' + username + ':' + password + '@some.server.com';
    
    request({url: url}, function (error, response, body) {
       // Do more stuff with 'body' here
    });
    
    0 讨论(0)
  • 2020-12-30 23:40

    In newer version you can also just add auth parameter (in format username:password, no encoding) to your options:

    var options = {
        host: 'localhost',
        port: 8000,
        path: '/restricted',
        auth: username + ':' + password
    };
    
    request = http.get(options, function(res){
        //...
    });
    

    (NOTE: tested on v0.10.3)

    0 讨论(0)
  • 2020-12-30 23:42

    Here is some information on basic HTTP authentication.

    0 讨论(0)
提交回复
热议问题