httpntlm-pull-req-8
v1.2.0
Published
httpntlm is a Node.js library to do HTTP NTLM authentication
Downloads
2
Readme
httpntlm
httpntlm is a Node.js library to do HTTP NTLM authentication
It's a port from the Python libary python-ntml
Install
You can install httpntlm using the Node Package Manager (npm):
npm install httpntlm
How to use
var httpntlm = require('httpntlm');
httpntlm.get({
url: "https://someurl.com",
username: 'm$',
password: 'stinks',
workstation: 'choose.something',
domain: ''
}, function (err, res){
if(err) return err;
console.log(res.headers);
console.log(res.body);
});
Should support http and https now. Though, I've not tested it on http.
Advanced
If you want to use the NTLM-functions yourself, you can access the ntlm-library like this (https example):
var ntlm = require('httpntlm').ntlm;
var async = require('async');
var httpreq = require('httpreq');
var HttpsAgent = require('agentkeepalive').HttpsAgent;
var keepaliveAgent = new HttpsAgent();
var options = {
url: "https://someurl.com",
username: 'm$',
password: 'stinks',
workstation: 'choose.something',
domain: ''
};
async.waterfall([
function (callback){
var type1msg = ntlm.createType1Message(options);
httpreq.get(options.url, {
headers:{
'Connection' : 'keep-alive',
'Authorization': type1msg
},
agent: keepaliveAgent
}, callback);
},
function (res, callback){
if(!res.headers['www-authenticate'])
return callback(new Error('www-authenticate not found on response of second request'));
var type2msg = ntlm.parseType2Message(res.headers['www-authenticate']);
var type3msg = ntlm.createType3Message(type2msg, options);
httpreq.get(options.url, {
headers:{
'Connection' : 'Close',
'Authorization': type3msg
},
allowRedirects: false,
agent: keepaliveAgent
}, callback);
}
], function (err, res) {
if(err) return console.log(err);
console.log(res.headers);
console.log(res.body);
});