totp.js 使用教程
项目地址:https://gitcode.com/gh_mirrors/to/totp.js
1. 项目介绍
totp.js
是一个纯 JavaScript 实现的双因素认证(Two-Factor Authentication, 2FA)库。它支持生成基于时间的一次性密码(TOTP)和基于计数器的一次性密码(HOTP),并且兼容 Google Authenticator。该项目旨在为开发者提供一个简单易用的工具,用于在 Web 应用中集成双因素认证功能。
2. 项目快速启动
安装
首先,通过 npm 安装 totp.js
:
npm install totp.js
使用示例
Node.js 环境
const TOTP = require('totp.js');
// 生成一个 base32 格式的密钥
const key = TOTP.randomKey(); // 例如:'GAXGGYT2OU2DEOJR'
// 创建 TOTP 实例
const totp = new TOTP(key);
// 生成一次性密码
const code = totp.genOTP(); // 例如:'552179'
// 验证一次性密码
const isValid = totp.verify(code); // true
// 生成 Google Authenticator 支持的 URL
const gaUrl = totp.gaURL('handsome@totp.js', 'Totp.js');
// 例如:'otpauth://totp/handsome@totp.js?issuer=Totp.js&secret=GAXGGYT2OU2DEOJR'
浏览器环境
<script src="/dist/totp.min.js"></script>
<script>
var key = TOTP.randomKey();
var totp = new TOTP(key);
console.log(totp.genOTP());
</script>
3. 应用案例和最佳实践
应用案例
- Web 应用的双因素认证:在用户登录时,除了输入密码外,还可以通过
totp.js
生成的一次性密码进行二次验证,提高账户安全性。 - API 访问控制:在 API 访问时,可以使用
totp.js
生成的一次性密码作为访问令牌,确保只有授权用户才能访问敏感数据。
最佳实践
- 密钥管理:确保生成的密钥安全存储,避免泄露。可以使用加密存储或环境变量来管理密钥。
- 定期更换密钥:为了提高安全性,建议定期更换密钥,并通知用户更新 Google Authenticator 中的密钥。
- 错误处理:在验证一次性密码时,处理可能的错误情况,如密码过期或无效密码。
4. 典型生态项目
- Google Authenticator:
totp.js
生成的 URL 可以直接导入 Google Authenticator,用户可以通过该应用生成一次性密码。 - Authy:Authy 是另一个流行的双因素认证应用,支持 TOTP 和 HOTP,可以与
totp.js
集成。 - Duo Security:Duo Security 提供多种双因素认证方式,包括 TOTP,可以与
totp.js
结合使用,增强安全性。
通过以上步骤,您可以快速上手 totp.js
,并在您的项目中集成双因素认证功能。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考