Skip to content
难度LEVEL
阅读READ约 2 分钟~2 min
更新UPDATED2026-09

第 9 章 秘密与配置 · 环境变量、API Key 与 .env

easycode · Agent Skill
const key = process.env.API_KEY 代码 · 天生要流传 git push GitHub · 全世界看得到 .env 口袋里装着钥匙 运行时伸手去摸 .gitignore 拦下 永不进存档 泄露了只有一条路:去服务商后台立刻作废并换新。删掉那行代码没有任何用,Git 历史里它还在。 stickmancharles.com · CC BY-NC-ND 4.0
图 9 · 秘密住在代码外面的口袋里

有些东西永远不能写进代码。数据库密码,API Key,钱包助记词。代码会进 Git,会上 GitHub,会被 AI 反复读来读去。代码天生是要流传的,秘密天生是不能流传的。

解决办法是把秘密放在代码外面的口袋里,代码运行时伸手去摸。这个口袋就是环境变量(Environment Variable)。本地开发时,习惯把它们集中写在一个叫 .env 的文件里,再在 .gitignore(一份"Git 请忽略这些文件"的清单)里写上 .env,确保这个口袋永远不会被拍进存档。线上呢?部署平台(Vercel、Supabase)都有专门的设置页面让你填环境变量。同一份代码,本地穿一件马甲,线上穿另一件,口袋里装着不同的钥匙。这也是开发环境生产环境这两个词的一半含义,同样的代码,不同的口袋。

判断一个东西算不算秘密,就问一句,陌生人拿到它会怎样?能花你的钱、动你的数据、冒充你的身份,那就是秘密,进环境变量。只是个公开的项目地址?那不算。

万一泄露了怎么办?记住一条反直觉的铁律,去服务商后台立刻作废(revoke)并换新(rotate)那把钥匙,光把那行代码删掉没有任何用。Git 是时间机器,历史存档里它还在。凡是曾经出现在 GitHub 上的秘密,一律当作已经泄露处理。

关键领悟

秘密管理是一种习惯。养成了,几乎零成本。没养成,一次事故就够你疼一年。

试一试

打开我们项目里的 .env 文件(还有 .gitignore),认一认里面每一把钥匙分别开哪扇门。不确定的,问 AI。

由 Charles Tao 与 Claude 协作写成——这本身就是这套书讲的工作方式。Written by Charles Tao with Claude — which is itself the working method this series teaches. · 许可License