@elastic.io/ntlm-client

中文文档
1.0.0发布于 2020/03/06MITCommonJS近 30 天下载 3303

一个节点.js NTLM客户端,支持NTLM和NTLMv2认证. 继续使用ntlm客户端和ntde-ntlm客户端.

中文使用文档

ntlm 客户端

支持 NTLM 和 NTLMv2 认证的节点.js NTLM 客户端

npm install ntlm-client

示例使用

const ntlmRequest = require('@elasticio/ntlm-client').request;

(async function makeExampleRequest() {
  const { response } = await ntlmRequest({
    username: 'MYDOMAIN\SomeUser',
    password: 'P@$$word1!',
    uri: 'https://api.someservice.com',
    method: 'POST',
    request: {
      json: true,   // Example of parameter passed to request.js
      body: {
        foo: 'bar'
      },
      headers: {
        Date: 'Today'
      }
    }
  });
  console.log(`Received status code: ${response.statusCode} Body: ${response.body}`);
})()

API 密码

请求(选项)

尝试使用 URL 认证的便利函数 request 模块. 如果不支持NTLM,则会倒向Basic Auth.

  • 参数
    • options 用于认证进程的下列对象:
      • uri 目标 URL
      • method hTTP 动词
      • username
      • password
      • request 这是可选的。 持有应当传递给请求实例的选项的对象
  • 回返
    • Promise 解决后 request 例如,结果和反应机构将获得通过

创建 Type1Message ([工作站,目标])

创建类型 1 NTLM 消息以初始化 NTLM 握手

  • 参数
    • workstation 可选的 若为 undefined, (中文(简体) ), os.hostname() 将使用
    • target 可选的 这是我们试图认证的域/主机.
  • 回返
    • string 完成 NTLM 字符串,该字符串应发送到服务器 Authentication 标题

解码Type2Message( 字符串)

解码从服务器收到的第2类消息,包括 NTLM 挑战

  • 参数
    • str Base64 编码为 第 2 类信件, 或者完整 WWW-Authenticate 标题,或包含响应标题的对象(http.IncomingMessage(中文(简体) )
  • 回返
    • type2Message 包含下列关于所收到第2类消息的信息的对象: flags, (中文(简体) ), encoding, (中文(简体) ), version, (中文(简体) ), challenge, (中文(简体) ), targetName, (中文(简体) ), targetInfo。 。 。 .

创建 Type3Message( 类型2Message, 用户名, 密码 [, 工作站, 目标])

根据从服务器收到的第2类消息创建第3类消息.

  • 参数
    • type2Message 已解码的 二 类信件对象
    • username
    • password
    • workstation 可选的 如果法尔西, os.hostname() 将使用
    • target 可选的 如果falsy,则会使用2型消息中的目标名称. 这是我们试图认证的域/主机.
  • 回返
    • string 完成 NTLM 字符串,该字符串应发送到服务器 Authentication 标题

版本与发布记录

@elastic.io/ntlm-client 共发布 1 个版本,首次发布于 2020/03/06;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.0latest2020/03/066 年前

关于 @elastic.io/ntlm-client 的常见问题

@elastic.io/ntlm-client 是什么?

一个节点.js NTLM客户端,支持NTLM和NTLMv2认证. 继续使用ntlm客户端和ntde-ntlm客户端.

如何安装 @elastic.io/ntlm-client?

在项目目录运行 npm install @elastic.io/ntlm-client,或使用 pnpm add / yarn add / bun add。

@elastic.io/ntlm-client 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/elastic.io__ntlm-client 是否存在。

@elastic.io/ntlm-client 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@elastic.io/ntlm-client 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js 12。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@elastic.io/ntlm-client 可以商用吗?

@elastic.io/ntlm-client 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@elastic.io/ntlm-client 的下载量有多少?

根据 npm 官方下载统计,@elastic.io/ntlm-client 在 2026/10/13 – 2026/11/11 这 30 天内被下载 3,303 次,日均约 110 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@elastic.io/ntlm-client 还在维护吗?

最新版本 1.0.0 发布于 2020/03/06(6 年前);至今共发布 1 个版本,其中过去 12 个月发布了 0 个;首次发布于 2020/03/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。