使用request-ntlm进行NTLM身份验证

时间:2017-11-16 09:39:55

标签: node.js express ntlm

我在我的Node中间件上使用 request-ntlm 包来连接远程Azure服务器。我的凭据是有效的,因为连接在Insomnia(REST客户端)中工作,但是从Node连接时我一直有同样的错误:

events.js:176
domain.enter();
       ^

TypeError: domain.enter is not a function
    at Request.emit (events.js:176:12)
    at Request.start (C:\Users\DJ5629\Documents\powerbi\node_modules\request\req
uest.js:750:10)
    at Request.end (C:\Users\DJ5629\Documents\powerbi\node_modules\request\reque
st.js:1512:10)
    at end (C:\Users\DJ5629\Documents\powerbi\node_modules\request\request.js:56
1:14)
    at Immediate.<anonymous> (C:\Users\DJ5629\Documents\powerbi\node_modules\req
uest\request.js:575:7)
    at runCallback (timers.js:672:20)
    at tryOnImmediate (timers.js:645:5)
    at processImmediate [as _immediateCallback] (timers.js:617:5)

以下是我用来发出NTLM请求的代码:

let opts = {
    url: api+'Contracts/getAll',
    headers: {
      'accept': 'application/json'
    },
    workstation: 'WRKSTN',
    domain: 'arandom.domain.com'

  }

  ntlm.get(opts, function(err,response){
    if(!error){
      res.status(response.statusCode).send(response);
    } else {
      res.status(response.statusCode);
    }
  })

仅当我在选项中提供域名时才会抛出此错误,但是当我删除属性时,我无法得到任何答案。

系统信息:   - Windows 7企业版   - 节点v6.11.4

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

这似乎是原始代码库中的一个错误,他们正在重新使用domain库中的request成员导致命名冲突。由于原作者似乎不再维护库,因此在request-nplm-continued下创建了一个固定包。