快速体验
- 打开 InsCode(快马)平台 https://www.inscode.net
- 输入框内输入如下内容:
快速开发TOTP验证MVP原型,要求:1. 最简可行功能集 2. 可演示的UI流程 3. 模拟数据支持 4. 无需持久化存储。功能包括:模拟用户注册、TOTP绑定展示、验证流程。使用任何快速开发框架,优先考虑开发速度而非代码质量,目标是1小时内完成可演示原型。前端可使用现成UI组件库。 - 点击'项目生成'按钮,等待项目生成完整后预览效果

最近在验证一个需要二次认证的商业想法,为了快速测试用户接受度,我用1小时完成了TOTP(基于时间的一次性密码)验证的MVP开发。这种闪电式原型开发的关键在于:聚焦核心流程、使用现成工具、忽略非必要功能。以下是具体实践过程:
- 功能清单极简裁剪
- 仅保留三个不可删减的核心节点:模拟用户注册表单、TOTP二维码生成页面、验证码输入校验界面
-
跳过分步引导说明、跳过密码复杂度校验、跳过邮件/SMS等备用验证方式
-
技术栈选择原则
- 前端直接使用Vite+React脚手架,搭配Ant Design组件库的表单和二维码组件
- 后端用Express搭建轻量API,使用speakeasy库生成TOTP密钥(无需自己实现RFC6238算法)
-
数据库用内存变量模拟,连SQLite都省了
-
关键路径开发步骤
- 注册页:1个表单收集用户名+密码,提交后返回虚拟用户ID
- 绑定页:根据用户ID生成TOTP密钥,用qrcode.react库转成二维码
-
验证页:输入6位验证码后调用speakeasy.totp.verify()进行校验
-
取巧的模拟数据策略
- 所有用户数据存在全局变量users对象中
- 页面刷新时显示预设的测试账号admin/123456
-
验证环节固定接受任意以8结尾的6位数字(演示时不用等30秒刷新)
-
UI偷懒技巧
- 复用Ant Design的Card+Form+Button组件
- 错误提示直接用Alert组件
- 二维码下方自动显示密钥明文(避免演示时还要扫码)
过程中遇到两个坑:首先是speakeasy的密钥生成需要base32编码,最初没注意导致二维码无效;其次是TOTP验证要考虑30秒的时间窗,调试时用process.env.NODE_ENV区分了开发模式宽松校验。
这种极速原型开发的关键心得是:
- 所有决策必须服务于"演示是否顺畅"这个唯一目标
- 能调用API就别自己实现(比如用免费的QRCode生成服务)
- 控制台日志要详细输出关键数据流(如生成的密钥/验证码)
- 准备3组测试用例:正确路径、错误路径、边界情况
最后在InsCode(快马)平台上尝试部署时,发现其内置的Node.js环境支持这种轻量级应用一键发布,省去了配置Nginx和PM2的麻烦。他们的网页终端还能直接查看实时日志,调试临时变量特别方便。

如果要做功能扩展,下一步可以考虑:添加模拟企业微信/Google Authenticator的皮肤切换,或者用localStorage实现伪持久化。不过对于原型验证阶段,当前版本已经足够支撑初期用户访谈了。
快速体验
- 打开 InsCode(快马)平台 https://www.inscode.net
- 输入框内输入如下内容:
快速开发TOTP验证MVP原型,要求:1. 最简可行功能集 2. 可演示的UI流程 3. 模拟数据支持 4. 无需持久化存储。功能包括:模拟用户注册、TOTP绑定展示、验证流程。使用任何快速开发框架,优先考虑开发速度而非代码质量,目标是1小时内完成可演示原型。前端可使用现成UI组件库。 - 点击'项目生成'按钮,等待项目生成完整后预览效果

被折叠的 条评论
为什么被折叠?



