Интеграция Node.js с MS Exchange EWS - PullRequest
7 голосов
/ 09 февраля 2012

Я пытаюсь использовать Node.js для вызова служб SOAP Exchange EWS. Я создал простой http-клиент, например, так:

var https = require('https');

var username = 'user';
var password = 'password';
var auth = 'NTLM ' + new Buffer(username + ":" + password).toString('base64');

var options = {
    host : 'exchangehost',
    port : 443,
    method : 'post',
    path : '/Exchange.asmx',
    headers : { Authorization : auth }
};

var request = https.request(options, function(response) {
    console.log('Status: ' + response.statusCode);
};

request.write('<soapenv:Envelope  ...></soapenv:Envelope>');
request.end();

Я получаю код состояния 401, я подозреваю, потому что я не выполняю три шага, связанных с аутентификацией NTLM (http://www.innovation.ch/personal/ronald/ntlm.html). Кто-нибудь знает о модуле Node.js для связи с Exchange EWS напрямую или для аутентификации с использованием NTLM, или я собираюсь сам реализовать этот протокол для Node.js? Любая помощь очень ценится.

Ответы [ 4 ]

1 голос
/ 01 мая 2017

Вы уже пробовали модуль ews-javascript-api npm, он имеет все функции, которые вы ищете + очень простая аутентификация ntlm с использованием модуля ews-javascript-api-auth . NTLMv2 также поддерживается.

Я добавил это как ответ, поскольку это обеспечило бы полный ответ на заголовок вопроса (интеграция). Это ссылки на GitHub, вопрос не является общим, поэтому примеры, представленные в GitHub, должны работать.

[отказ от ответственности - я автор]

1 голос
/ 16 июня 2015

Вы пробовали модуль httpntlm?https://github.com/SamDecrock/node-http-ntlm

1 голос
/ 19 октября 2016

Я успешно использовал node-ews для связи с EWS.

node-ews использует httpntlm для внутренней аутентификации NTLM.

Лично я думаю node-ews - ваша лучшая ставка, поскольку в ней уже реализовано все необходимое для взаимодействия с EWS.

0 голосов
/ 18 декабря 2012

Я нашел этот модуль Node.js, который поддерживает связь с Exchange 2010, однако я все еще пытаюсь понять, как использовать его лично, документация проста.https://npmjs.org/package/exchanger

...