clncln1 / node-ntlm-client

A node.js NTLM client with support for NTLM and NTLMv2 authentication
MIT License
10 stars 23 forks source link

Example of usage? #10

Closed Dror-Bar closed 5 years ago

Dror-Bar commented 5 years ago

Hi, While the readme has documentation it lacks some basic usage example. Could you please share one simple example? here is an example of my code:

httpntlm.get(
            {
                url: URL,
                username: USERNAME,
                password: PASSWORD,
                domain: DOMAIN,
                ca: ca
            },
                function (err, res) {
                    if (err) console.log(err);
                    else console.log(res);
           });

Buy the library I'm using only supports NTLM v1 and I need NTLM v2. Could you please help me with an example? thanks :)

Dror-Bar commented 5 years ago

Alright I figured it out. Maybe this example will help someone.

const request = require('request'); 
const ntlm = require('ntlm-client');
const https = require('https'); 
const keepAliveAgent = new https.Agent({ keepAlive: true });
const type1msg = ntlm.createType1Message();

const URL = 'your url';
const USERNAME = 'your username';
const PASSWORD = 'your password';

request(
       {
           url: URL,
           headers: { 'Authorization': type1msg },
           agent: keepaliveAgent,    //   I think this is required
           ca: ca        // I also need ca
       },
           function (error, response) {
               if (error) console.log(error);
               const type2msg = ntlm.decodeType2Message(response.headers['www-authenticate']);
               const type3msg = ntlm.createType3Message(type2msg, USERNAME, PASSWORD);

               request(
                           {
                               url: URL,
                               headers: { 'Authorization': type3msg },
                               agent: keepaliveAgent,
                               ca: ca
                           },
                               function (err, res, body) {
                                   if (err) console.log(err);
                                   console.log(body);
                          });
 });