# TOTP验证器 - 小米手环10版 一个专为小米手环10设计的TOTP(时间一次性密码)验证器应用,支持生成双因素认证码。 ## 🎯 项目简介 本项目是一个运行在小米手环10上的验证器应用,支持生成TOTP和Steam验证码。通过简洁的界面和触感反馈,为用户提供便捷的二步验证体验。 ## ✨ 功能特性 - 🔐 **多种验证码支持**:支持标准TOTP和Steam验证码算法 - ⏰ **实时倒计时**:弧形进度条显示验证码剩余有效时间 - 📱 **响应式界面**:针对手环屏幕尺寸优化的用户界面 - 📳 **触感反馈**:验证码更新、页面切换时的震动提醒 - 🔄 **自动刷新**:验证码自动更新,无需手动操作 - 📊 **详情查看**:大字体显示验证码,方便查看 - ⚡ **性能优化**:针对手环设备的电量和性能优化 ## 🛠️ 技术栈 - **开发框架**:快应用 (QuickApp) - **UI技术**:UX模板语言 - **加密算法**:HMAC-SHA1, Base32编码 - **依赖库**:crypto-js - **构建工具**:aiot-toolkit ## 📦 项目结构 ``` src/ ├── app.ux # 应用入口文件 ├── manifest.json # 应用配置清单 ├── common/ │ ├── accounts.json # 账户配置文件 │ └── logo.png # 应用图标 ├── pages/ │ └── index/ │ └── index.ux # 主页面 └── utils/ └── totp.js # TOTP算法实现 ``` ## 🚀 安装使用 ### 环境要求 - Node.js >= 8.10 - aiot-toolkit >= 2.0.4 - 小米手环10设备 ### 开发环境搭建 1. **克隆项目** ```bash git clone cd totp-authenticator ``` 2. **安装依赖** ```bash npm install ``` 3. **开发调试** ```bash npm start ``` 4. **构建发布** ```bash npm run build npm run release ``` ## ⚙️ 配置说明 ### 账户配置 在 `src/common/accounts.json` 中配置验证器账户: ```json { "accounts": [ { "name": "服务名称", "username": "用户名", "secret": "Base32密钥", "enabled": true, "type": "totp" } ], "settings": { "title": "TOTP验证器", "refreshInterval": 20, "maxDisplayAccounts": 10 } } ``` ### 支持的验证码类型 - `totp`: 标准TOTP验证码(6位数字) - `steam`: Steam验证码(5位字符) ### 密钥格式 - 支持Base32编码的密钥 - 支持40位十六进制密钥 - 密钥示例:`JBSWY3DPEHPK3PXP` ## 🎨 界面说明 ### 主界面 - 显示所有启用的验证器账户 - 实时显示验证码和剩余时间 - 弧形进度条指示时间进度 ### 详情页面 - 大字体显示验证码(分行显示更清晰) - Steam验证码单行显示 - 返回按钮和时间提醒 ### 颜色系统 - 🟢 绿色:正常状态(时间充足) - 🟡 橙色:警告状态(时间不足10秒) - 🔴 红色:紧急状态(时间不足5秒) ## 📱 交互说明 - **点击账户卡片**:进入验证码详情页面 - **点击返回按钮**:返回主界面 - **验证码更新**:自动震动提醒 - **页面切换**:轻微震动反馈 ## 🔐 安全须知 - 请妥善保管TOTP密钥,避免泄露 - 建议定期备份账户配置 - 删除不再使用的验证器账户 - 注意设备安全,避免他人访问 ## 🛠️ 开发说明 ### 代码规范 ```bash # 代码检查 npm run lint # 代码格式化 prettier --write "src/**/*.{ux,js}" ``` ### 性能优化 - 页面隐藏时停止定时器以节省电量 - 使用节能模式减少不必要的计算 - 优化动画性能,避免卡顿 ### 调试技巧 - 使用 `console.log` 进行调试 - 通过 `aiot start --watch` 实现热重载 - 检查手环设备日志排查问题 ## 📋 待办事项 - [ ] 添加账户管理功能 - [ ] 支持二维码扫描添加账户 - [ ] 添加数据同步功能 - [ ] 支持更多验证码算法 - [ ] 优化电量消耗 ## 🤝 贡献指南 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 🙏 致谢 - 感谢小米开发者社区提供的技术支持 - 感谢快应用框架团队 - 感谢所有贡献者和测试用户 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 提交 Issue - 发起 Pull Request - 联系项目维护者 --- ⌚ **让验证更简单,让手环更智能!**