主题
第 9 章 秘密与配置:环境变量、API Key 与 .env
有些东西永远不能写进代码:数据库密码、API Key、钱包助记词。因为代码会进 Git、会上 GitHub、会被 AI 反复读来读去——代码天生是要流传的,而秘密天生是不能流传的。
解决办法是把秘密放在代码外面的口袋里,代码运行时伸手去摸。这个口袋就是环境变量(Environment Variable)。本地开发时,习惯把它们集中写在一个叫 .env 的文件里;再在 .gitignore(一份"Git 请忽略这些文件"的清单)里写上 .env,确保这个口袋永远不会被拍进存档。线上呢?部署平台(Vercel、Supabase)都有专门的设置页面让你填环境变量——同一份代码,本地穿一件马甲,线上穿另一件,口袋里装着不同的钥匙。这也是"开发环境"和"生产环境"这两个词的一半含义:同样的代码,不同的口袋。
判断一个东西算不算秘密,就问一句:**陌生人拿到它会怎样?**能花你的钱、动你的数据、冒充你的身份——那就是秘密,进环境变量。只是个公开的项目地址?那不是。
万一泄露了怎么办?记住这条反直觉的铁律:去服务商后台立刻作废(revoke)并换新(rotate)那把钥匙,而不是"把那行代码删掉"。因为 Git 是时间机器——历史存档里它还在,删掉最新版毫无意义。凡是曾经出现在 GitHub 上的秘密,一律当作已经泄露处理。
关键领悟
秘密管理是习惯,不是技术。习惯一旦养成,几乎零成本;没养成,一次事故就够你疼一年。
试一试
打开我们项目里的 .env 文件(还有 .gitignore),认一认里面每一把钥匙分别开哪扇门。不确定的,问 AI。