Node.js与MS Exchange EWS的集成



我正在尝试使用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实现该协议?我们非常感谢任何协助。

我已成功使用node-ews与EWS通信。

node-ews在内部使用httpntlm进行NTLM身份验证。

就我个人而言,我认为节点ews是您的最佳选择,因为它几乎已经实现了与ews交互所需的一切。

您尝试过httpntlm模块吗?https://github.com/SamDecrock/node-http-ntlm

您尝试过ews javascript api npm模块吗?它具有您所关注的所有功能+使用ews javascript api auth模块进行非常简单的ntlm身份验证。还支持NTLMv2。

我添加这个作为答案,因为它将提供问题标题(集成)的完整答案。这些都是github链接,这个问题不太普遍,所以github自述中提供的示例应该可以工作。

[免责声明-我是作者]

我发现了一个支持与Exchange 2010通信的Node.js模块,但我仍在尝试如何亲自使用它,文档很简单。https://npmjs.org/package/exchanger

最新更新