NTLM axios node utility function
npm install @node-ntlm/axios@node-ntlm/axios is a Node.js library to do HTTP NTLM authentication over axios
It's heavily inspired from axios-ntlm written in typescript, promise based and with nodejs 18 support.
You can install @node-ntlm/axios using the Node Package Manager (npm):
npm install @node-ntlm/axios
This example will create you a brand new axios instance you can utilise the same as any other axios instance
``typescript
import { NtlmClient, NtlmCredentials } from '@node-ntlm/axios';
(async () => {
const credentials: NtlmCredentials = {
username: 'username',
password: 'password',
domain: 'domain',
};
const client = NtlmClient(credentials);
try {
const resp = await client({
url: 'https://protected.site.example.com',
method: 'get',
});
console.log(resp.data);
} catch (err) {
console.log(err);
console.log('Failed');
}
})();
`
This shows how to pass in an axios config in the same way that you would when setting up any other axios instance.
Note: If doing this, be aware that http(s)Agents need to be attached to keep the connection alive. If there are none attached already, they will be added. If you are providing your own then you will need to set this up.
`typescript
import { AxiosRequestConfig } from 'axios';
import { NtlmClient, NtlmCredentials } from '@node-ntlm/axios';
(async () => {
const credentials: NtlmCredentials = {
username: 'username',
password: 'password',
domain: 'domain',
};
const config: AxiosRequestConfig = {
baseURL: 'https://protected.site.example.com',
method: 'get',
};
const client = NtlmClient(credentials, config);
try {
const resp = await client.get('/api/123');
console.log(resp);
} catch (err) {
console.log(err);
console.log('Failed');
}
})();
``