- 更新 README 文档,增加项目简介、功能特性、技术栈等内容 - 优化 .gitignore 文件,添加更多需要忽略的文件和目录 - 调整项目结构,为开发环境搭建提供更详细的说明
222 lines
5.3 KiB
Markdown
222 lines
5.3 KiB
Markdown
# TOTP验证器 - 小米手环10版
|
||
|
||
一个基于小米Vela JS应用框架开发的TOTP(时间一次性密码)验证器,专为小米手环10设计,为用户提供便捷的双因素认证体验。
|
||
|
||
## 🎯 项目简介
|
||
|
||
本项目是一个运行在小米手环10上的验证器应用,基于小米Vela JS平台开发。支持生成TOTP和Steam验证码,通过简洁的界面和触感反馈,为用户在手环设备上提供便捷的二步验证体验。
|
||
|
||
## ✨ 功能特性
|
||
|
||
- 🔐 **多种验证码支持**:支持标准TOTP和Steam验证码算法
|
||
- ⏰ **实时倒计时**:弧形进度条显示验证码剩余有效时间
|
||
- 📱 **响应式界面**:针对小米手环10屏幕尺寸优化的用户界面
|
||
- 📳 **触感反馈**:验证码更新、页面切换时的震动提醒
|
||
- 🔄 **自动刷新**:验证码自动更新,无需手动操作
|
||
- 📊 **详情查看**:大字体显示验证码,方便查看
|
||
- ⚡ **性能优化**:针对小米手环10的电量和性能优化
|
||
|
||
## 🛠️ 技术栈
|
||
|
||
- **开发框架**:小米Vela JS应用框架
|
||
- **开发工具**:AIoT-IDE(基于VS Code)
|
||
- **UI技术**:UX模板语言
|
||
- **运行时**:JavaScript Runtime
|
||
- **加密算法**: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算法实现
|
||
```
|
||
|
||
## 🚀 安装使用
|
||
|
||
### 环境要求
|
||
|
||
- **开发工具**:AIoT-IDE(推荐)或 VS Code + Vela插件
|
||
- **Node.js**:>= 8.10
|
||
- **构建工具**:aiot-toolkit >= 2.0.4
|
||
- **目标设备**:小米手环10
|
||
|
||
### 开发环境搭建
|
||
|
||
1. **安装AIoT-IDE**
|
||
- 下载AIoT-IDE开发工具
|
||
- 或使用VS Code并安装Vela相关插件
|
||
|
||
2. **克隆项目**
|
||
```bash
|
||
git clone <repository-url>
|
||
cd totp-authenticator
|
||
```
|
||
|
||
3. **安装依赖**
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
4. **开发调试**
|
||
```bash
|
||
# 启动开发服务器(支持热重载)
|
||
npm start
|
||
|
||
# 或使用AIoT-IDE的调试功能
|
||
# 连接设备进行真机调试
|
||
```
|
||
|
||
5. **构建发布**
|
||
```bash
|
||
# 构建项目
|
||
npm run build
|
||
|
||
# 生成发布包
|
||
npm run release
|
||
```
|
||
|
||
### 设备调试
|
||
|
||
1. **模拟器调试**:使用AIoT-IDE内置模拟器
|
||
2. **真机调试**:通过USB或Wi-Fi连接小米手环10设备
|
||
3. **日志查看**:在开发工具中查看设备运行日志
|
||
|
||
## ⚙️ 配置说明
|
||
|
||
### 账户配置
|
||
|
||
在 `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` 实现热重载
|
||
- 检查小米手环10设备日志排查问题
|
||
|
||
## 📋 待办事项
|
||
|
||
- [ ] 添加账户管理功能
|
||
- [ ] 支持二维码扫描添加账户
|
||
- [ ] 添加数据同步功能
|
||
- [ ] 支持更多验证码算法
|
||
- [ ] 优化电量消耗
|
||
|
||
## 🤝 贡献指南
|
||
|
||
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
|
||
- 联系项目维护者
|
||
|
||
---
|
||
|
||
⌚ **让验证更简单,让手环更智能!** |