# SPA TOTP Authenticator 一个纯前端、基于浏览器的 TOTP (基于时间的一次性密码) 认证器。它安全、轻量,并将数据完全控制在用户手中。 ## ✨ 功能特性 (Features) - **完整的 TOTP 管理**: - **添加账户**: 支持通过手动输入或直接粘贴 `otpauth://` URI 来添加新账户。 - **实时密码**: 清晰展示每个账户的实时动态密码和刷新倒计时。 - **一键复制**: 方便地将密码复制到剪贴板。 - **删除账户**: 安全地从本地存储中移除账户。 - **强大的数据管理**: - **数据持久化**: 所有账户信息安全地存储在浏览器的 IndexedDB 中,无需依赖任何云服务。 - **多种导入/导出格式**: - **JSON**: 用于完整备份和恢复。 - **URI 文本 (.txt)**: 导出为多行 `otpauth://` URI,与其他认证器兼容。 - **rsc/2fa 格式**: 支持 `github.com/rsc/2fa` 的纯文本格式。 - **纯粹的客户端体验**: - **无需安装**: 打开网页即可使用。 - **隐私优先**: 任何敏感数据都不会离开您的浏览器。 ## 🛠️ 技术栈 (Tech Stack) - **构建工具**: Vite - **前端框架**: React - **语言**: TypeScript - **样式**: Tailwind CSS - **数据持久化**: IndexedDB (使用 `idb` 库) - **TOTP 核心逻辑**: `otpauth` ## 🚀 快速开始 (Getting Started) 1. **克隆项目** ```bash git clone cd demo-spa-authenicator ``` 2. **安装依赖** ```bash npm install ``` 3. **运行开发服务器** ```bash npm run dev ``` 应用将在本地启动 (通常是 `http://localhost:5173`)。 4. **构建生产版本** ```bash npm run build ``` ## 🔒 数据与安全 (Data & Security) - **数据完全本地化**: 本应用的所有数据(包括您的 TOTP 密钥)都只存储在您当前使用的浏览器的 IndexedDB 中。我们不会收集或将您的数据上传到任何服务器。 - **注意**: 清理浏览器数据(例如,清除网站数据或缓存)将**永久删除**所有已保存的账户。请务必使用导出功能定期备份您的数据。