httpntlm-old

1.3.0 • Public • Published

This module is for experimental purpose, please do not use it

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);
});

More information

Readme

Keywords

none

Package Sidebar

Install

npm i httpntlm-old

Weekly Downloads

3

Version

1.3.0

License

none

Last publish

Collaborators

  • pradeepmishra