Node.js与MS Exchange EWS的集成

我正在尝试使用Node.js来调用SOAP Exchange EWS服务。 我创build了一个简单的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身份validation的三个步骤( http://www.innovation.ch/personal/ronald/ntlm.html )。 有谁知道一个Node.js模块直接与Exchange EWS进行通信或使用NTLM进行身份validation,还是我需要自己为Node.js实现该协议? 任何援助非常感谢。

我已经成功地使用了node-ews与EWS进行通信。

node-ews httpntlm内部使用httpntlm进行NTLM身份validation。

就个人而言,我认为node-ews是你最好的select,因为它几乎已经实现了与EWS交互所需的所有东西。

你有没有尝试过httpntlm模块? https://github.com/SamDecrock/node-http-ntlm

您是否尝试过ews-javascript-api npm模块,它具有您正在查看的所有function+使用ews-javascript-api-auth模块的非常简单的ntlm身份validation 。 NTLMv2也受支持。

我添加了这个答案,因为它将提供问题标题(集成)的完整答案。 这些是github链接,问题很less,所以在github自述文件中提供的示例应该可以工作。

[免责声明 – 我是作者]

我发现了一个支持与Exchange 2010进行通信的Node.js模块,但是我仍然试图弄清楚如何使用它,文档很简单。 https://npmjs.org/package/exchanger