mirror of
https://github.com/wuzf/2fa.git
synced 2026-09-03 07:17:09 +08:00
v0.2.0
主要改进: - 新增现代化深色主题Web界面,提供更好的用户体验 - 实现实时倒计时进度条,直观显示OTP剩余有效时间 - 添加点击复制OTP功能,方便快速使用 - 支持JSON API模式(添加?format=json参数) - 优化代码结构,添加常量定义和错误处理 - 修复倒计时计算bug(使用当前时间而非加载时间) - 改进Base32解码,增强输入验证和容错性 - 更新README文档,详细说明双模式使用方法 技术细节: - 添加响应头缓存控制,确保OTP实时性 - 支持CORS跨域访问(JSON API模式) - 优化代码可维护性(TIME_STEP和OTP_LENGTH常量化)
2FA OTP Generator
这是一个用Cloudflare Worker实现的Two Factor Authentication (2FA) OTP生成器,可以简单代替Google Authenticator或Microsoft Authenticator。
功能特点
- 🔐 基于TOTP (Time-based One-Time Password) 算法
- ⏰ 30秒自动刷新OTP
- 📱 支持所有支持2FA的服务(GitHub、Google、Microsoft等)
- 🔄 自动刷新,无需手动操作
- 🎨 现代化UI界面 + 实时倒计时
- 🔌 双模式支持:Web界面 & JSON API
部署方法
直接复制worker.js源码到Cloudflare Workers部署。
使用方法
模式一:Web界面(推荐给人类使用)
1. 访问OTP生成器
在URL后添加您的2FA密钥:
https://your-domain.com/YOUR_SECRET_KEY
示例:
https://your-domain.com/JBSWY3DPEHPK3PXP
2. 查看OTP
页面会显示:
- ✅ 大号的6位数字OTP代码
- ⏱️ 实时倒计时(显示剩余有效秒数)
- 🔄 倒计时结束后自动刷新获取新OTP
界面特点:
- 深色主题,保护眼睛
- 大字体显示,易于识别
- 自动刷新,无需手动操作
模式二:JSON API(推荐给程序调用)
访问方式:
在URL后添加 ?format=json 参数:
https://your-domain.com/YOUR_SECRET_KEY?format=json
示例:
https://your-domain.com/JBSWY3DPEHPK3PXP?format=json
返回格式:
{
"token": "123456"
}
字段说明:
token: 当前的6位数字OTP代码
命令行使用示例:
# 获取OTP token
curl https://your-domain.com/YOUR_SECRET?format=json | jq -r '.token'
# 获取完整信息
curl https://your-domain.com/YOUR_SECRET?format=json
# 在脚本中使用
TOKEN=$(curl -s https://your-domain.com/YOUR_SECRET?format=json | jq -r '.token')
echo "Current OTP: $TOKEN"
演示网站
Web界面: https://2fa.guts.eu.org/MBWJJVDIQ3PH3SA5
JSON API: https://2fa.guts.eu.org/MBWJJVDIQ3PH3SA5?format=json
技术实现
- 算法: TOTP (RFC 6238)
- 哈希算法: HMAC-SHA1
- 时间步长: 30秒
- OTP长度: 6位数字
- 支持格式: HTML页面 / JSON API
开发
# 本地开发
npm run dev
# 部署到Cloudflare Workers
npm run deploy
安全注意事项
⚠️ 重要提醒:
- 密钥通过URL传递,会出现在浏览器历史记录和服务器日志中
- 建议仅在私人环境或受信任的网络中使用
- 不要在公共场所或共享设备上使用
- 考虑使用HTTPS以保护传输安全
许可证
MIT License
Description
Two Factor Authentication
基于 Cloudflare Workers 的两步验证密钥管理系统。免费部署、全球加速、支持 PWA 离线使用。
2faauthenticatorbackupcloudflare-workersencryptionhotpjavascriptotppwasecurityself-hostedserverlesssteam-guardtotptwo-factor-authentication
Readme
MIT
6.3 MiB
Languages
JavaScript
99.7%
Python
0.3%