最近在做什么
最近主要在给 2Fauth-Cloudflare 做 Android 客户端。这次不走 WebView 加载网页,而是直接调 Worker 的 /api/v1 Bearer Token API。
体验上会更像原生应用:登录、刷新 token、读取条目、批量刷新 TOTP、生成 HOTP、复制验证码,都由 Android 端自己控制,不依赖网页状态。
几个必须做对的地方
界面可以简单,但基础流程不能有问题:
- 登录后安全保存 access token 和 refresh token。
- refresh token 会轮换,每次刷新后必须保存最新值,否则下次就失效。
- 展示验证码前先做生物识别或设备凭据解锁。
- 条目列表走
GET /api/v1/entries。 - TOTP 批量刷新走
POST /api/v1/codes/batch。 - HOTP 单独走对应条目的生成接口。
这些细节处理不好,用户感受到的就是“偶尔登录失效”“验证码刷新不稳定”“复制不顺手”。2FA 工具不能给人这种感觉。
同时维护服务端和客户端的好处
自己同时改 Worker 和 Android 客户端,有一个实实在在的好处:接口设计不需要猜。移动端哪里用起来别扭,服务端 API 可以马上调;服务端有新约束,移动端也能同步跟上。
clientType、token refresh 策略、批量验证码接口,这些都是两端配合着设计出来的,不是单方面拍板的。
后续想做的
功能倒不急着加,更想把日常使用中的小摩擦补掉:离线状态提示、验证码倒计时体验、分组筛选、搜索,以及更清楚的错误提示。
安全工具不需要功能很多,每个常用操作顺手比什么都强。