30 秒看懂
在这期由 GPT Pilot 赞助、发布于 2023 年 12 月的教程中,Matthew Berman 使用 VS Code 扩展构建 Node.js 登录和注册原型。他提供需求、批准命令、测试各个流程,并与智能体合作解决错误。 演示使用了较弱的本地测试密钥,并非生产环境安全指南。后来的仓库安全公告报告称,2025 年 8 月至 2026 年 6 月期间分发的源码中含有窃取凭据的代码;维护者表示该代码已被移除,仓库也已停止维护。
- 1明确需求Berman 选择 JWT 身份验证、密码强度检查和简单的登录后主页。
- 2批准并检查命令智能体请求初始化项目和安装软件包,Berman 则选择服务器端口。
- 3调试缺失的软件包一次启动失败促使工具和开发者安装缺失的环境配置依赖。
- 4测试密钥不是生产密钥视频在本地示例中使用简单的 JWT 和会话值;真实系统需要安全配置。
- 5浏览器登录最初失败终端请求成功,但界面登录失败,直到 Berman 报告差异并由智能体修改代码。
- 6后续仓库安全公告维护者报告了 2025 至 2026 年间发生的凭据窃取供应链入侵,并表示受影响源码已被移除。
要点建议
- GPT Pilot 将描述的应用拆分成任务,并要求开发者审查和测试进展。
- 演示需要人作出决策、手动处理文件并多次批准命令。
- 终端登录可能成功,而浏览器表单失败,需要进行集成调试。
- 通过选定的注册、密码和会话检查并不能证明生产环境安全。
- 演示中较弱的 JWT 和会话密钥不适合实际部署。
- 项目后来的仓库安全事件和维护状态与这段历史视频是不同的事情。
按章节阅读整理后的全文
需求与设置
Berman 介绍 2023 年受赞助的 VS Code 工作流程,并定义身份验证应用。GPT Pilot 提出澄清问题并制定开发计划。
我演示 GPT Pilot,这是一款 AI 辅助应用构建工具,开发者会在过程中进行审查和测试。这段 2023 年 12 月的视频由 GPT Pilot 赞助。结果是一次经过剪辑的小型身份验证应用演示,并不能证明单个提示词无需人工工作就能生成安全、可投入生产的系统。
当时我在 VS Code 中安装 GPT Pilot Alpha 扩展,打开面板并配置模型访问。我创建一个项目,描述一款使用数据库和持久会话的 Node.js 应用,包含注册、登录和当前用户页面。演示的配置和产品可用性属于历史情况,可能已经改变。
工具在编码前提出澄清问题。我选择基于 JWT 的身份验证、不要求邮件确认、设置密码强度要求,并让主页显示用户的名字。这些是演示中的选择,而不是通用的身份验证设计。
GPT Pilot 总结需求、提出技术方案,并要求我确认本地环境。随后它制定包含任务和预期审查目标的开发计划。我将其描述为来回协作的工作流程:工程师检查工具的步骤、测试结果,并帮助调试问题。
服务器、数据库和注册
开发者批准命令、测试服务器,并解决缺失的依赖。注册功能完成后使用示例请求进行检查。

第一个任务初始化 Node.js 项目和 Express 服务器。工具在运行项目初始化和安装软件包等命令前会询问我。它还打开一个文件,要求我选择备用端口;我选择 3002,保存文件并继续。
服务器启动后,我运行建议的请求以检查它是否响应。工具建议了另一个端口,因此我将测试调整为演示中实际使用的端口。这个小小的修正说明,人需要检查生成的指令,而不能假定每条命令都正确。
接下来的步骤增加 Mongoose 和数据库配置。服务器最初找不到环境配置软件包;我批准调试,随后安装了缺失的依赖。应用接着报告已连接 MongoDB,但仍显示警告。

GPT Pilot 使用 bcrypt 密码哈希实现注册。我启动应用并发送测试请求,应用报告用户已创建。工具继续生成页面和文档,但单次成功请求不能证明注册流程安全或完整。
前端与身份验证测试
手动处理 Bootstrap 文件后,进行重复用户和密码检查。演示使用的弱测试密钥不应在生产环境中使用。
针对前端,工具要求我将 Bootstrap 的 CSS 和 JavaScript 文件复制到公共目录。我下载文件并手动完成这一步,然后重启应用。当它将弃用警告视为错误时,其调试回复指出,这类警告不一定意味着服务器故障。


我再次测试注册,检查重复账户是否被拒绝。下一项任务增加密码强度中间件,使用弱密码的测试返回了预期的拒绝结果。这些是对单个情况有用的检查,但并非对密码处理或防滥用能力的穷尽测试。
生成工具要求输入 JWT 密钥和会话密钥。由于这是本地测试,我故意输入简单的值;它们强度不足,不适合生产环境。真实部署需要安全生成的密钥、安全存储和安全审查,而不是照搬演示值。
我在终端中使用已有账户测试登录,收到成功响应和令牌。GPT Pilot 报告项目大约完成了三分之二,并更新文档。它还展示先前的开发步骤,如果后续修改失败或需要转向其他方案,可以回到这些步骤。
修复登录并测试会话
尽管终端登录成功,浏览器表单最初仍然失败。反馈和修改后,Berman 重新测试登录、会话持久性和主页。
生成的浏览器登录页面失败,尽管终端请求成功。我向智能体报告这一差异;它怀疑表单与后端之间存在集成问题,要求输入并修改代码。再次尝试同一流程后,页面报告登录成功。观察到的修复适用于这个例子,并不能覆盖每种身份验证边界情况。
后续步骤调查 Mongoose 弃用警告。然后我测试登录是否保持:刷新页面、重启服务器并再次刷新后,示例仍处于登录状态。这检查了一条会话持久化路径,但不能证明过期、撤销或会话攻击防护的设计恰当。
主页显示已登录用户的名字,刷新后依然如此。GPT Pilot 报告项目生成完成并更新 README。我指出,自己在整个过程中逐步批准操作、测试行为,并借助工具修正问题。

完成与后续安全背景
生成的原型和开发历史可以继续扩展或回溯。后来的仓库安全公告涉及另一起供应链事件。
界面提供继续添加功能以及返回先前开发步骤的选项。本次演示中我选择不再增加修改,并提到项目社区可以提供帮助。任何实际部署之前,生成的代码、依赖、配置和身份验证行为仍需要独立审查和测试。
对于重新查看这段历史教程的人,后续还有一项重要信息:GPT Pilot 仓库维护者报告称,2025 年 8 月 24 日至 2026 年 6 月 11 日期间,源码中存在窃取凭据的恶意代码,之后已被移除。仓库表示不再积极维护,并建议在此期间运行过受影响源码的人轮换可能暴露的凭据、检查其设备。这一后续事件与 2023 年的演示是不同的事情。
同频道的其他文章
34:21EN → 简体中文
0:26EN → 简体中文
0:36EN → 简体中文
0:21EN → 简体中文
25:50EN → 简体中文
32:20EN → 简体中文