发现全球最佳 AI 工具

从零教你部署与精通,掌握实战变现工作流

API Key 获取与配置教程封面图,包含环境变量、服务端调用与安全防护要点

API Key 是什么及如何在 OpenAI 中获取与正确配置(含环境变量、服务端调用与安全防护流程)

API Key 到底是什么?本文以 OpenAI 为例,讲清获取、环境变量配置、服务端调用、权限安全与泄漏轮换排查。

API Key 是什么,如何获取和正确配置

副标题:以 OpenAI 为例,讲清从创建、保存、环境变量、调用,到权限与安全防护的完整流程。

适合谁看刚接触 API 的新手、站长、开发者、AI 工具使用者、需要把模型接入网站或脚本的人
你会学到API Key 的本质、获取入口、环境变量配置、服务端接入方式、团队权限设置、泄漏排查与轮换
阅读提示本文以 OpenAI 为例,但“不要写死到前端、统一走服务端、用环境变量或 Secrets 管理”的原则适用于大多数 API 平台
先记住一句话: API Key 不是“给前端拿去直连模型”的钥匙,而是给你的服务端或受控环境用来代表你发请求的机密凭证。只要一个 key 暴露出去,别人就可能以你的身份调用接口、消耗额度,甚至带来额外费用。

很多人第一次接触 API 时,最容易混淆的就是账号、登录态、API Key、Access Token 这些概念。尤其在 AI 工具越来越多之后,用户常常会在“能不能直接把 key 填进网页里”“拿到 key 后到底写到哪里”“为什么代码明明能跑却还是报错”这些问题上反复踩坑。真正高频出问题的地方,往往不是接口本身,而是凭证管理方式。

这篇文章会把 API Key 讲成一条完整链路:先理解它是什么,再知道去哪里创建,然后学会正确保存、正确配置、正确调用,最后补上生产环境里最重要的安全习惯。你不需要一开始就把所有平台都弄懂,只要先把这套基本方法吃透,以后接触其他厂商的 API,也会很快上手。

图 1|API Key 从创建到安全调用的典型链路

一、API Key 到底是什么

API Key 可以理解成“程序访问某个平台接口时使用的机密身份凭证”。在 OpenAI 的官方说明里,API 请求使用 API keys 做身份验证;请求发到服务器后,平台会根据你带过去的 key 来识别你是谁、你属于哪个组织或项目、你有没有权限调用某个端点,以及这次调用应该记到哪一份用量里。

它和你在网页上登录 ChatGPT 的账号密码不是一回事。账号密码是给人登录控制台或网页端用的,而 API Key 是给程序、脚本、后端服务发请求时用的。也正因为如此,它的安全要求会更高:你不能把它随便复制给别人,也不能把它明文写在浏览器脚本、移动端 App、公开仓库或截图里。

把几个常见概念区分开: 账号密码:用于登录平台控制台或网页。API Key:用于你的程序调用接口,常见形式是 sk-… 或项目级密钥。环境变量:操作系统里的变量名和值,用来安全地把 key 注入程序,而不是把 key 写死在代码里。Bearer Authentication:HTTP 里携带 key 的常见方式,格式通常是 Authorization: Bearer <API_KEY>。

二、为什么不能把 API Key 直接写到前端或代码仓库里

OpenAI 官方安全指南里有三条非常核心的提醒:不要把 key 部署在浏览器或移动端等客户端环境;不要把 key 提交到代码仓库;推荐用环境变量或密钥管理服务来替代硬编码。原因很现实——客户端代码最终会被用户拿到,仓库也可能被爬虫、第三方依赖、协作者或意外公开事件看到。一旦 key 泄漏,就等于别人可以冒用你的身份发起请求。

很多新手觉得“我的网站还没流量”“只是临时测试一下”就问题不大,实际上恰恰是临时测试最容易把 key 粘到错误的地方。比如直接把 key 放在 JavaScript 里、把示例文件原样推到 GitHub、把屏幕录制或截图发到群里,这些都是非常常见的泄漏方式。

  • 不要把 key 写进浏览器端 JS、Vite/Next.js 前端公开环境、微信小程序前端直连代码、移动端 App 安装包。
  • 不要在博客、论坛、教程截图、README、Notion 公开页面里展示完整 key。
  • 不要在团队里共用同一个 key;官方建议每个成员单独使用自己的 key。
  • 如果已经怀疑泄漏,不要观望,先 rotate(轮换)再排查。

图 2|把 API Key 的安全管理当成生产能力的一部分

三、以 OpenAI 为例:API Key 到哪里获取

OpenAI Help Center 的说明非常直接:你的 Secret API key 可以在 API key page 找到。当前平台里,常见做法是先登录 OpenAI API Platform,然后进入组织或项目设置,在对应的 API Keys 页面创建新的 secret key。

  1. 登录 OpenAI API Platform 控制台。
  2. 进入 Organization settings 或选定具体 Project。
  3. 打开 API Keys 页面,点击“Create new secret key”或类似按钮。
  4. 立即复制新生成的 key,并保存到安全的位置。

这里有一个很重要的细节:某些 key(尤其是服务账号创建时生成的 secret key)通常只会在创建当下完整显示一次。官方在项目管理文档中明确提醒,创建后应立即保存;如果丢失,通常需要重新生成新的 key,而不是事后在页面里把原值完整找回来。

获取 key 时最容易忽视的两点: 先想清楚你要把这个 key 用在哪个项目,而不是随手在默认组织下乱建。复制后立刻保存到密码管理器、Secrets 管理器或本地受控文档,不要只放在剪贴板里。

四、正确配置 API Key:优先环境变量,其次 Secrets 管理服务

OpenAI 官方最佳实践推荐把变量名统一设置为 OPENAI_API_KEY,并通过操作系统环境变量把 key 提供给你的程序。这样做的好处是:代码仓库里不需要出现真实 key;团队里的变量名一致;后续轮换时,只需更新环境而不需要在很多脚本里全文搜索替换。

对本地开发来说,环境变量已经足够实用;对线上服务来说,更推荐把 key 存在云平台的 Secrets / Key Management Service 里,由容器、函数或服务器实例在运行时注入。原则只有一个:程序可以读到,仓库和前端看不到。

图 3|OpenAI 官方给出的环境变量配置思路,适合本地开发快速上手

1)Windows CMD 示例

在新的 cmd 窗口里验证变量是否生效

setx OPENAI_API_KEY “<yourkey>”

echo %OPENAI_API_KEY%

注意:官方说明里提到,setx 对未来新开的 cmd 窗口生效,所以你执行完之后,需要重新打开一个新的命令行窗口再验证。很多人明明执行过 setx,却马上在当前窗口里跑脚本,结果依然报未找到变量,就是因为这个细节。

2)macOS / Linux(zsh)示例

zsh 环境常见写法

echo “export OPENAI_API_KEY=’yourkey'” >> ~/.zshrc
source ~/.zshrc

echo $OPENAI_API_KEY

如果你使用 bash,官方建议把 .zshrc 换成 .bash_profile。总之,本质都是把 export 语句写到启动脚本里,再让终端重新加载。

3)本地开发时的常见组织方式

  • 代码里只写 os.getenv(“OPENAI_API_KEY”) 或等价读取方式,不写明文。
  • 若项目使用 .env 文件,也要把 .env 加到 .gitignore,避免提交到仓库。
  • 前端项目把所有对 OpenAI 的调用转到自己的后端接口,由后端读取环境变量并转发请求。
  • 线上环境优先使用云厂商提供的 Secret Manager、KMS、Environment Variables 等受控注入机制。

五、正确调用方式:只让服务端带着 key 去请求 API

在认证方式上,OpenAI 官方 API 文档给出的方式非常明确:使用 HTTP Bearer authentication,也就是在请求头里携带 Authorization: Bearer OPENAI_API_KEY。对于需要显式指定组织或项目的场景,还可以附加 OpenAI-Organization 和 OpenAI-Project 头。

最小 Bearer 认证示例

curl https://api.openai.com/v1/models
  -H “Authorization: Bearer $OPENAI_API_KEY”

当你需要显式指定组织 / 项目时

curl https://api.openai.com/v1/models
  -H “Authorization: Bearer $OPENAI_API_KEY”
  -H “OpenAI-Organization: $ORGANIZATION_ID”
  -H “OpenAI-Project: $PROJECT_ID”

如果你是做网站、工具页或自动化脚本,推荐的调用链路应该是:前端发请求给你自己的后端;后端读取环境变量里的 OPENAI_API_KEY;后端再向 OpenAI API 发起请求,并把结果返回前端。这样就算前端代码被任何人查看,也拿不到你的真实 key。

官方 Quickstart 风格的首个请求示例

curl https://api.openai.com/v1/responses
  -H “Content-Type: application/json”
  -H “Authorization: Bearer $OPENAI_API_KEY”
  -d ‘{
    “model”: “gpt-5.4”,
    “input”: “用一句话解释什么是 API Key”
  }’
前端 / 后端职责建议: 前端:只负责收集用户输入、展示结果,不接触真实 key。后端:读取环境变量、加鉴权头、校验请求、记录日志、处理报错。运维 / 平台层:管理 Secrets、轮换 key、监控用量与异常流量。

六、团队和生产环境怎么做才算“正确配置”

对单人测试来说,能跑起来就算第一步;但到了团队协作和线上环境,就不能只停留在“有一个 key 能调通”的阶段。OpenAI 的项目管理文档给了几条很实用的做法:项目级 key 可以在具体项目的 API Keys 页面创建和管理;key 权限可以设置为 All、Restricted、Read Only;服务账号可以创建专门的系统访问账号,并且这些账号和 key 都是项目作用域的。

  • 成员各自使用自己的 key,不要整个团队共用一个 secret。
  • 按项目划分 key,把测试、正式、不同业务拆开,便于记账与权限控制。
  • 能用 Restricted 就别默认 All;只读场景用 Read Only。
  • 自动化任务、定时作业、CI/CD、服务端 worker 更适合使用服务账号。
  • 设置项目预算提醒与使用量监控,尽早发现异常增长。

权限模型怎么理解

在项目设置里,OpenAI 当前提供三种 key 权限层级:All、Restricted、Read Only。All 是全部权限;Restricted 允许你按端点做 None / Read / Write 的细分;Read Only 则适合只读类场景。对新手来说,你可以把它理解为“不要默认给满权限”。能最小授权,就最小授权。

服务账号什么时候用

如果请求不是由具体某个成员在自己电脑上跑,而是由服务器、定时任务、后台 worker、部署流水线来跑,就更适合创建 service account。这样做的好处是:你可以把“系统身份”跟“个人身份”分开;某个成员离职或角色变动时,不会影响系统服务本身的运行。官方也提醒,服务账号创建后生成的 secret key 需要立即保存,因为之后不能再次完整查看。

七、常见报错与排查方法

配置 API Key 时,最常见的问题并不是代码逻辑,而是凭证本身或凭证注入方式。OpenAI Help Center 专门列出了“Incorrect API key provided”这一类报错的排查思路,核心包括:检查你当前使用的 key 是否正确、确认应用里没有混用不同 key、必要时确认组织设置是否正确。

高频问题 1:Incorrect API key provided

  • 先去 API Keys 页面核对你现在程序里用的那一串是否还是当前有效 key。
  • 确认程序没有从旧的 .env、旧容器镜像、旧 CI 变量里读取到过期值。
  • 检查是否前后端或多个脚本混用了两把不同的 key。
  • 如果你属于多个组织或历史遗留项目,检查是否需要显式指定组织 / 项目头。

高频问题 2:环境变量明明设置了,但程序读不到

  • Windows 使用 setx 后要重新打开新的命令行窗口。
  • macOS / Linux 写入 .zshrc 或 .bash_profile 后,要重新 source 或重开终端。
  • IDE、Docker、PM2、systemd、Serverless 平台各自有自己的环境变量注入位置,别只在本地 shell 里设置。
  • 打印一次变量名是否拼写正确,例如 OPENAI_API_KEY,而不是 OPEN_API_KEY 之类的近似名。

高频问题 3:已经怀疑 key 泄漏

  • 立即 rotate 或删除旧 key,并生成新 key。
  • 同步更新本地开发环境、服务器、CI/CD、Secrets 管理平台里的值。
  • 查看 Usage / 成本记录,确认是否出现异常调用。
  • 检查 Git 历史、日志、错误上报平台、公开页面和截图,确认泄漏入口。

八、一页配置清单:把“能用”升级为“用得对”

发布前自查 10 项: 我知道这把 key 属于哪个项目、谁在用、用来干什么。真实 key 没有出现在前端代码、公开仓库、截图或文档里。程序通过环境变量或 Secrets 管理服务读取 key,而不是写死在代码中。前端不会直接请求 OpenAI API,一律走自己的后端。本地、测试、生产环境的 key 已分开。团队成员没有共用同一把 key。关键服务使用项目级 key 或服务账号,而不是个人临时 key。至少配置了使用量查看与预算提醒。我知道如何快速 rotate key,并完成替换。我已经为常见报错准备了最小排查清单。

结语

API Key 看起来只是平台后台里的一串字符,但它背后代表的其实是一套完整的工程习惯:最小暴露、最小权限、后端托管、环境变量注入、分项目管理、及时轮换与审计。真正成熟的做法,不是“抄一段示例代码能跑起来”,而是让这把 key 在不同环境里都始终处于可控状态。

如果你刚开始接触 API,建议先用本文的方法把本地环境配置通,再把前端直连改成后端转发。等你的网站、脚本或自动化任务真正跑起来之后,再补上项目级权限、服务账号、预算提醒和轮换策略。只要这套底层方法建立起来,以后无论你接入哪个 AI API,都会轻松很多。

附录:官方资料来源(用于本文校对)

来源本文使用位置
OpenAI Help Center|Where do I find my OpenAI API Key?说明 secret API key 的获取入口在 API key page。
OpenAI Help Center|Best Practices for API Key Safety说明不要把 key 放到客户端、不要提交到仓库、推荐使用 OPENAI_API_KEY 环境变量,并给出 Windows / macOS / Linux 示例。
OpenAI API Reference|Authentication说明使用 Bearer 认证,以及在需要时附加 OpenAI-Organization / OpenAI-Project 头。
OpenAI Help Center|Managing projects in the API platform说明项目级 API keys、权限级别 All / Restricted / Read Only、服务账号与预算提醒。
OpenAI API Quickstart / Production best practices说明第一条请求示例与生产环境中的密钥存放建议。

FAQ :

API Key 是什么?

它是程序访问 API 时使用的机密凭证,用来完成身份验证与权限判断。

OpenAI API Key 到哪里获取?

登录 OpenAI API Platform 后,在组织或项目的 API Keys 页面创建新的 secret key。

为什么不能把 API Key 写到前端?

因为浏览器、移动端或公开仓库里的代码最终会被他人看到,暴露后可能带来额度消耗与安全风险。

最推荐的配置方式是什么?

本地用环境变量,线上用 Secrets 或 Key Management Service,由服务端读取后再调 API。

遇到 Incorrect API key provided 怎么办?

先核对当前 key 是否有效,再检查是否混用旧 key、环境变量未生效,必要时重新生成新 key。

Facebook
LinkedIn
Reddit
X
Email
WhatsApp
Telegram
Pinterest
Mix

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注