Duo 通用节点Js 库
这个库允许一个网页开发者快速地将Duo的交互式,自助,双因子认证添加到任何Node.js网络登录表.
见我们的开发者文档 https://www.duosecurity.com/docs/duoweb (中文(简体) ) 用于指导将 Duo 2FA 整合到您的网络应用程序.
谢谢 卢卡斯·克罗克 用于创建此库的初始版本.
开始
这个库需要Node.js LTS(v20或后期).
要在您已有的开发环境中使用此客户端, 请使用您选择的软件包管理器安装 .
npm install @duosecurity/duo_universal
pnpm add @duosecurity/duo_universal
yarn add @duosecurity/duo_universal
一旦安装完毕,请在 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. 进口客户
import { Client } from '@duosecurity/duo_universal';
2. 创建客户端
创建新的客户端实例 。 提供您的 Duo 安全应用程序证书和主机 URL 。 包含重定向 URL 以返回您的应用程序 .
const client = new Client({
clientId: 'yourDuoApplicationClientId',
clientSecret: 'yourDuoApplicationSecret',
apiHost: 'api-12345678.duosecurity.com',
redirectUrl: 'http://localhost:3000/redirect',
});
3. 健康检查
确定 Duo 的服务器是否可以访问和接受 2FA 请求 .
const status = await client.healthCheck();
4. 生成状态
生成新状态( 随机字符串) , 以链接认证尝试 。 适当存储,这样您就可以回调时检索/比较.
const state = client.generateState();
5. 创建认证 URL
创建认证 URL , 将用户重定向到 Duo Security Universal 迅速 。 提供用户标识符和前一步骤生成的状态 .
const authUrl = await client.createAuthUrl('username', 'state');
6. 密码交换
收到的汇兑 duo code 从调用重定向到符号结果 .
const token = await client.exchangeAuthorizationCodeFor2FAResult('duoCode', 'username');
示例
完整的执行实例可见于 example/。 。 。 .
简单快取应用.
请跟随 example/README.md 把它旋转起来.
贡献
叉子存储器
安装依赖关系
pnpm install
做你提议的修改。 如果适用,请添加测试,插入代码。 提交拉动请求 .
测试
pnpm run test
林特
pnpm run lint