二发式
一个轻量级,强力的Node.js工具,用于生成"双倍认证"(TOTP)秘密,QR代码,并验证令牌. 可与Google认证器,微软认证器,和Authy兼容.
现场直播
特征
- 简单设置:在一个函数调用中生成一个秘密和QR代码.
- 标准兼容性: 与任何 RFC 6238 兼容验证器应用程序相配合.
- 灵活核查: 支持自定义窗口、步骤和其他
otplib选项. - 零依赖( 运行时间): 高效地装订必要的逻辑(使用)
otplib财务报告和审定财务报表qrcode盖下.
安装
npm install 2fa-util
使用量
基本示例
const { generateSecret, verify } = require('2fa-util');
(async () => {
// 1. Generate a Secret and QR Code
const { secret, qrcode, otpauth } = await generateSecret('[email protected]', 'MyApp');
console.log('Secret:', secret);
console.log('QR Code Data URL:', qrcode); // Display this in an <img src="...">
// ... User scans QR code ...
// 2. Verify a Token
const userToken = '123456'; // Input from user
const isValid = verify(userToken, secret);
console.log('Is Valid:', isValid);
})();
高级验证( 自定义选项)
你可以通过标准 otplib 选项 verify 函数,例如 window (为时钟漂移)或 step。 。 。 .
const isValid = verify(token, secret, {
window: 1, // Allow 1 step before/after (approx +/- 30sec)
step: 60 // Custom step size in seconds
});
API 参考
generateSecret(label, [issuer])
生成一个新的TOTP秘密和相应的QR代码.
- 标签
(string):用户名或账户标识符(如电子邮件). - 发行者
(string, optional): 您的应用程序或公司名称 . - 回返数字 :
Promise<Object>secret: Base32编码了密钥.qrcode: QR 代码图像的数据 URI字符串(base64).otpauth: 原始数据otpauth://URL (中文(简体) ).
verify(token, secret, [options])
验证一个TOTP的标志 与一个秘密.
- 符号
(string):用户提供的6位数的代币. - 隐藏
(string):用户存储了密钥. - 选项
(Object, optional): 配置对象传递给otplib。 。 。 . - 回返数字 :
boolean(单位:千美元)true如果有效,false(否则).
generate(secret)
为给定的秘密生成当前符号( 用于测试或 dev 工具) .
- 隐藏
(string):密钥. - 回返数字 :
string(目前6位数的符号).
发展
清除寄存器并安装依赖性 :
git clone https://github.com/jzhobes/2fa-util.git
cd 2fa-util
npm install
运行测试 :
npm test
运行林入 :
npm run lint
许可证
麻省理工学院 何约翰