# @duosecurity/duo\_universal 中文文档

规范地址：https://npmcn.com/package/%40duosecurity/duo_universal/

版本：3\.1\.0
npm 元数据更新时间：2026-08-21T15:34:17.072Z
中文译文更新时间：2026-11-13T00:28:43.215Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40duosecurity/duo_universal
原文对照：https://npmcn.com/package/%40duosecurity/duo_universal/?lang=original
项目主页：https://github.com/duosecurity/duo_universal_nodejs#readme
源码仓库：https://github.com/duosecurity/duo_universal_nodejs

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：253 kB，9 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=20
- 运行依赖：2 个
- 首次发布：2022-02-02T14:56:51.624Z
- 最新版本发布：2026-08-21T15:34:16.686Z
- 近 30 天下载量：31559（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：8（近 12 个月 2 个）

## 中文简介

节点.js执行 Duo Universal SDK.

## 安装

```sh
npm install @duosecurity/duo_universal
```

也可以使用：`pnpm add @duosecurity/duo_universal`、`yarn add @duosecurity/duo_universal`、`bun add @duosecurity/duo_universal`

## README

# Duo 通用节点Js 库

[![Build Status](https://github.com/duosecurity/duo_universal_nodejs/workflows/Node.js%20CI/badge.svg)](https://github.com/duosecurity/duo_universal_nodejs/actions/workflows/nodejs-ci.yml) [![npm version](https://badge.fury.io/js/@duosecurity%2Fduo_universal.svg)](https://badge.fury.io/js/@duosecurity%2Fduo_universal) [![GitHub license](https://img.shields.io/github/license/duosecurity/duo_universal_nodejs)](https://github.com/duosecurity/duo_universal_nodejs/blob/main/LICENSE)

这个库允许一个网页开发者快速地将Duo的交互式,自助,双因子认证添加到任何Node.js网络登录表.

见我们的开发者文档 [https://www.duosecurity.com/docs/duoweb (中文(简体) )](https://www.duosecurity.com/docs/duoweb) 用于指导将 Duo 2FA 整合到您的网络应用程序.

谢谢 [卢卡斯·克罗克](https://github.com/lukashroch) 用于创建此库的初始版本.

## 开始

这个库需要Node.js LTS(v20或后期).

要在您已有的开发环境中使用此客户端, 请使用您选择的软件包管理器安装 .

```sh
npm install @duosecurity/duo_universal

pnpm add @duosecurity/duo_universal

yarn add @duosecurity/duo_universal
```

一旦安装完毕,请在 [https://duo.com/docs/duoweb (中文(简体) )](https://duo.com/docs/duoweb) 编辑 `example` 用于将 Duo 2FA 集成到您的网络应用程序的引导文件夹.

### TLS 1.2 和 1.3 支持

Duo universal nodejs在TLS操作中使用了节点tls库和OpenSSL. 所有接受安全支持的节点(14及以上)版本都使用支持TLS1.2和1.3的OpenSSL 1.1.

## 用法细节

### 1\. 进口客户

```ts
import { Client } from '@duosecurity/duo_universal';
```

### 2\. 创建客户端

创建新的客户端实例 。 提供您的 Duo 安全应用程序证书和主机 URL 。 包含重定向 URL 以返回您的应用程序 .

```ts
const client = new Client({
    clientId: 'yourDuoApplicationClientId',
    clientSecret: 'yourDuoApplicationSecret',
    apiHost: 'api-12345678.duosecurity.com',
    redirectUrl: 'http://localhost:3000/redirect',
});
```

### 3\. 健康检查

确定 Duo 的服务器是否可以访问和接受 2FA 请求 .

```ts
const status = await client.healthCheck();
```

### 4\. 生成状态

生成新状态( 随机字符串) , 以链接认证尝试 。 适当存储,这样您就可以回调时检索/比较.

```ts
const state = client.generateState();
```

### 5\. 创建认证 URL

创建认证 URL , 将用户重定向到 Duo Security Universal 迅速 。 提供用户标识符和前一步骤生成的状态 .

```ts
const authUrl = await client.createAuthUrl('username', 'state');
```

### 6\. 密码交换

收到的汇兑 `duo code` 从调用重定向到符号结果 .

```ts
const token = await client.exchangeAuthorizationCodeFor2FAResult('duoCode', 'username');
```

## 示例

完整的执行实例可见于 [`example/`](https://npmcn.com/example)。 。 。 . 简单快取应用. 请跟随 [`example/README.md`](https://npmcn.com/example/README.md) 把它旋转起来.

## 贡献

叉子存储器

安装依赖关系

```sh
pnpm install
```

做你提议的修改。 如果适用,请添加测试,插入代码。 提交拉动请求 .

## 测试

```sh
pnpm run test
```

## 林特

```sh
pnpm run lint
```

## 常见问题

### @duosecurity/duo\_universal 是什么？

节点\.js执行 Duo Universal SDK\.

### 如何安装 @duosecurity/duo\_universal？

在项目目录运行 npm install @duosecurity/duo\_universal，或使用 pnpm add / yarn add / bun add。

### @duosecurity/duo\_universal 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @duosecurity/duo\_universal 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @duosecurity/duo\_universal 需要什么版本的 Node\.js？

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

### @duosecurity/duo\_universal 可以商用吗？

@duosecurity/duo\_universal 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @duosecurity/duo\_universal 的下载量有多少？

根据 npm 官方下载统计，@duosecurity/duo\_universal 在 2026/10/13 – 2026/11/11 这 30 天内被下载 31,559 次，日均约 1,052 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @duosecurity/duo\_universal 还在维护吗？

最新版本 3\.1\.0 发布于 2026/08/21（2 个月前）；至今共发布 8 个版本，其中过去 12 个月发布了 2 个；首次发布于 2022/02/02。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

