在日常使用各种在线服务时,双重身份验证(2FA)已成为保护账户安全的重要手段。但你是否也遇到过以下问题?
- 手机上的 2FA 应用界面杂乱,所有账户一次性全部展示;
- 手机丢失后,所有 2FA 账户无法恢复;
- 使用电脑时还得掏出手机输入验证码;
- 想要备份 2FA 数据却无从下手。
为了解决这些问题,2FAuth 应运而生。它是一款基于网页的双重身份验证管理工具,专为追求简洁、安全和自托管体验的用户设计。

项目初衷
2FAuth 的开发者基于以下几个原因创建了这个项目:
- 市面上大多数 2FA 应用界面一次性展示所有账户的动态码,界面拥挤且带有倒计时,令人焦虑;
- 2FA 账户数据通常仅保存在手机中,一旦手机丢失,账户恢复困难;
- 在桌面环境中频繁切换设备获取验证码体验不佳;
- 开发者热爱编码,并倾向于使用自托管方案来掌控自己的数据。
主要功能
2FAuth 提供了一套完整的双重身份验证解决方案,支持多种添加和管理账户的方式:
- 账户分组管理:将不同类别的账户按需分组,提升可读性和组织性;
- 二维码扫描添加账户:通过摄像头扫描二维码,快速导入 2FA 账户;
- 手动添加账户:无需二维码,通过表单自定义添加账户;
- 账户编辑与管理:支持对已导入账户进行修改;
- 支持多种认证协议:
- TOTP(基于时间的一次性密码)
- HOTP(基于计数器的一次性密码)
- Steam Guard(专为 Steam 用户优化)
目前,2FAuth 已完全支持英文和法语界面,如果你有兴趣帮助翻译其他语言,可以参与项目的开源贡献。
安全特性
作为一款管理敏感认证信息的工具,2FAuth 在安全性方面做了多项设计:
单用户设计
2FAuth 是为个人使用设计的单用户应用,你需要注册并登录后才能使用,但不支持多用户账户。
现代认证方式
你可以使用硬件安全密钥(如 YubiKey 或 Titan Security Key)进行登录,同时可以禁用传统的用户名/密码登录方式,提升账户安全性。
数据加密机制
所有敏感数据在数据库中均可加密存储,防止因数据库泄露导致信息外泄。加密功能默认关闭,但建议启用时备份 .env
文件中的 APP_KEY
,以确保数据可恢复。
自动登出机制
为防止长时间保持登录状态带来的风险,2FAuth 支持在一段时间无操作后自动登出。该功能可配置,也可在复制验证码时触发登出,进一步保障安全。
RFC 合规性
2FAuth 严格遵循 RFC 4226(HOTP)和 RFC 6238(TOTP)标准,确保生成的动态码与主流服务兼容。该项目依赖 Spomky-Labs/OTPHP PHP 库实现 OTP 生成逻辑。
适合谁使用?
2FAuth 特别适合以下用户:
- 希望自托管、掌控自己 2FA 数据的人;
- 对界面简洁和使用体验有要求的用户;
- 使用桌面电脑时希望减少手机依赖的用户;
- 关注账户安全、希望使用硬件密钥进行认证的
评论