← 返回API Key 和 .env 是什么?
1 / 8
Tutorial·8

API Key 和 .env 是什么?

为什么 API Key 不能写进代码?用钥匙和钥匙串的比喻讲清 .env、环境变量和 .gitignore,顺带解决泄露和改了不生效两个必踩的坑

1
Step 1

开篇:为什么 AI 总让你先去申请一个 API Key

API Key 是项目的钥匙,.env 是装这些钥匙的钥匙串
API Key 是项目的钥匙,.env 是装这些钥匙的钥匙串

你在 Vibe Coding 的时候,是不是经常碰到这种情况:项目要调用大模型、要接地图、要存数据,AI 一定会跟你说——先去某个地方申请一个 API Key,然后把它填到一个叫 .env 的文件里。

没有这一步,项目的核心功能就跑不起来。

那这个 API Key 到底是个什么东西?为什么非要专门整一个 .env 文件来放它?直接写在代码里行不行?

这一期就把这几个问题讲明白:API Key 是什么、.env 是什么、为什么不能把 API Key 写进代码,以及 Vibe Coding 的时候这些东西该怎么处理。


2
Step 2

API Key 是什么:项目的一把钥匙

先说 API Key。

它就像一把钥匙。项目里需要用到其他服务的时候,就得申请一把钥匙来调用——比如调用大模型、接地图接口、接天气接口。

举个例子,你可以去 DeepSeek 官网 申请一个 DeepSeek 的 API Key。有了它,你就能在自己的项目里接入 AI 大模型,调用 DeepSeek 的思考模型帮你处理任务。

API Key 一般就是一串字符。它有两个作用:

  1. 证明你是谁
  2. 顺便记账——你用一次,它记一次
每一个服务都各要一把自己的钥匙:大模型、地图接口、天气接口各一把
每一个服务都各要一把自己的钥匙:大模型、地图接口、天气接口各一把

注意:记账的时候,它只认钥匙,不认人。万一有一天有人复制了你的 API Key,他就能直接拿去用,而这笔账是记在你头上的。

3
Step 3

为什么绝对不能把钥匙写进代码

问题: 那这把钥匙放哪呢?很多新手的第一反应是——直接写在代码里呗。

结论:绝对不行。

原因: 你的代码很容易流出去:

  • 你会把它发给 AI 帮你改 bug
  • 可能传给朋友参考
  • 以后还会传到网上存档

你把 API Key 写进代码,就等于把钥匙挂在了门外面。一旦泄露,第二天你充值的账户余额可能就被清空了。

把钥匙写进代码,等于挂在自己家门外——第二天充值的账户余额可能就被清空了
把钥匙写进代码,等于挂在自己家门外——第二天充值的账户余额可能就被清空了
4
Step 4

.env 是什么:项目的钥匙串

所以项目里专门有一个文件来存放这些钥匙,就是 .env。它是你这个项目的钥匙串

打开它你会看到这样的结构:左边一个名字,右边一串字符,中间一个等号。

名字=钥匙

等号右边那串就是钥匙,这就是所谓的环境变量

.env 里的一行:等号左边是名字(可以露出来),右边是钥匙(必须藏着)
.env 里的一行:等号左边是名字(可以露出来),右边是钥匙(必须藏着)

那程序是怎么用这些钥匙的?它启动的时候,会拿着左边这个名字,自己去 .env 里读。

所以代码里只会出现左边的名字,不会出现右边的钥匙——你的 API Key 就安全了。

5
Step 5

部署上线后,钥匙放哪

除了本地会用到 API Key,如果想把代码搬到线上部署,环境变量又该怎么配置?分两种情况。

第一种:自己买了服务器,自己部署

这种情况其实最简单:配置方法和你在自己电脑上基本没区别——同样把 .env 文件放在项目里,本地怎么配,服务器上就怎么配。

第二种:用托管平台部署

平台会要求你上传代码,但千万不要把 .env 文件也一起传上去,这和把家里的钥匙放在家门口没什么区别。

正确做法是:找到托管平台的「环境变量」设置入口,把名字和钥匙填一份。程序启动的时候,平台就从这个设置里读取,不会把钥匙泄露出去。

不管是哪种情况,原则都一样:代码里只有名字,钥匙永远不跟代码走。

托管平台的「环境变量」入口:名字和钥匙各填一份,千万别把 .env 文件传上去
托管平台的「环境变量」入口:名字和钥匙各填一份,千万别把 .env 文件传上去
6
Step 6

.gitignore:防止钥匙被手滑传上去

最后一个问题:上传代码的时候,怎么保证 .env 不会被你手滑一起传上去?

这就要靠另外一个文件,叫 .gitignore。翻译过来就是「git 你别管它」。

它就是一份名单——写在这个名单上的文件,上传存档的时候会被自动挡在门外。

一般情况下,项目创建的时候 .env 就已经在这个名单里了。

.gitignore 就是一份名单,写在上面的文件(.env 默认就在)上传时会被自动挡在门外
.gitignore 就是一份名单,写在上面的文件(.env 默认就在)上传时会被自动挡在门外
7
Step 7

两个必踩的坑:泄露了怎么办、改了不生效

万一真的泄露了怎么办

别慌。比如我在录视频的时候申请 DeepSeek 的 API Key 没有打码,这把钥匙就已经暴露出来了,任何人拿到它都能用我的账户去调用 DeepSeek 的接口。

处理办法很简单:回到申请钥匙的那个平台后台,把这把旧钥匙作废。 已经作废的 API Key 不能再继续使用,重新申请一个新的就可以了。

泄露了就回申请钥匙的后台,把那一行删掉作废,再重新申请一把新的
泄露了就回申请钥匙的后台,把那一行删掉作废,再重新申请一把新的

改了 .env 不生效

这是新手一定会遇到的情况。

原因: 程序是启动的时候读一次,不是随时盯着这个文件。

解决: 改完钥匙串,记得把程序重启一遍。

8
Step 8

总结:三句话管好你的钥匙

以上就是 API Key 和 .env 的全部内容。最后快速回顾一下:

概念是什么关键点
API Key调用别人服务的一把钥匙只认钥匙不认人,泄露了账记在你头上
.env项目的钥匙串左边名字、右边钥匙,程序启动时自己去读
环境变量.env 里那一行行「名字=钥匙」代码里只出现名字
.gitignore一份不上传的名单.env 默认就在这个名单里
托管平台部署在平台的环境变量入口填一份绝不上传 .env 文件

整件事其实就三句话:

代码里只写名字;钥匙收在 .env 里;.env 不上传、不发给任何人。

记住这三句,你的钥匙就丢不了。

三句话:代码里只写名字、钥匙收在 .env 里、.env 不上传也不发给任何人
三句话:代码里只写名字、钥匙收在 .env 里、.env 不上传也不发给任何人
1 / 8