# webauth The Node.js module implements the main mechanisms of web authentication. At the moment webauth supports the following types of authentication: * NTLM (The implementation of this type uses code written by [SamDecrock](https://github.com/SamDecrock) ([node-http-ntlm](https://github.com/SamDecrock/node-http-ntlm)) * Basic ## How to install This project is a Node.js module that you can add to your application via the `npm` packet manager: `npm install webauth` ## How to use To authenticate the request to the server, use the `auth` method: `auth(reqOptions, credentials, callback, [isHttps=false], [res], [method])` * `reqOptions` - The request options object uses a signature identical to the [Node.js http/https request options](http://nodejs.org/api/http.html#http_http_request_options_callback); * `credentials` - The object to which authentication parameters are passed: ```` { username : 'Churkin.Andrey', // required field password : 'myPass$1', // required field domain : 'CORP', // is used in the NTLM auth workstation: 'CHURKIN-LINUX' // is used in the NTLM auth } ```` * `callback` - The function that will be called after the authentication; * `isHttps` - Set `true` to use https protocol (`false` by default); * `res` - An optional parameter that you need to pass to the method if you have already received a response from the server with the 401 error; * `method` - The authentication type to be used. Possible values are: `NTLM`, `Basic`. If this value is not specified, it will be automatically selected based on the following priorities: * NTLM * Basic ## Example ```` var webauth = require('webauth'); var reqOptions = { host: 'localhost', headers: { 'accept-encoding' : 'gzip,deflate,sdch' } }, credentials = { username: 'Churkin.Andrey', password: 'myPass$1', domain: 'CORP', workstation: 'CHURKIN-LINUX' }; webauth.auth(reqOptions, credentials, function(res) { console.log(res.statusCode); }); ````