最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

javascript - node.js: form HTTP Authentication with request module fails - Stack Overflow

matteradmin7PV0评论

I'm trying get page behind the login form with node.js request module.

'username' and 'password' are the names of fields of that form, 'login.php?do=login' is a form action. Doing that I don't get any headers and status codes but only [Error: no auth mechanism defined] message in console.

var request = require('request'),

var options = {
    'auth' : {
    'username':'name',
    'password':'pass'
},
url: '.php?do=login',
headers: {
    "User-Agent":"user-agent"
    }
}

request.post(options, function(err,res,body) {
if(err){
    console.log(err);
    return;
}
console.log('headers :', res.headers);
console.log('status code :', res.statusCode);
console.log($('body').text());
});

How could I investigate this? Which way it can be "sniffered" or something like that?

I'm trying get page behind the login form with node.js request module.

'username' and 'password' are the names of fields of that form, 'login.php?do=login' is a form action. Doing that I don't get any headers and status codes but only [Error: no auth mechanism defined] message in console.

var request = require('request'),

var options = {
    'auth' : {
    'username':'name',
    'password':'pass'
},
url: 'http://example./login.php?do=login',
headers: {
    "User-Agent":"user-agent"
    }
}

request.post(options, function(err,res,body) {
if(err){
    console.log(err);
    return;
}
console.log('headers :', res.headers);
console.log('status code :', res.statusCode);
console.log($('body').text());
});

How could I investigate this? Which way it can be "sniffered" or something like that?

Share Improve this question asked Dec 19, 2015 at 11:33 Pavel LPavel L 2,0673 gold badges18 silver badges25 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 3

Request module's auth option is to handle basic access authentication. Most likely the page you try to load does not use BAA, but uses a simple form with a post request. To send form data with requests:

var options = {
    url: '...',
    headers: { ... },
    method: 'POST',
    formData: {
        'username':'name',
        'password':'pass'
    }
}
Post a comment

comment list (0)

  1. No comments so far