外观
获取与保护 API Key
API Key 是程序访问 FlashCoding.AI 的凭证。任何拿到密钥的人都可能以你的账户发起请求,因此应像密码一样保存,并按用途拆分。
适用场景
- 创建第一把 API Key。
- 为本地开发、服务器或不同客户端分配独立密钥。
- 怀疑密钥泄露,需要轮换或停用。
- 排查
401 Unauthorized或“缺少 API Key”。
前置条件
- 已登录 FlashCoding.AI 控制台。
- 已确认密钥要用于哪台设备、哪个应用和哪个分组。
- 准备了系统密钥库、密码管理器或服务器机密管理服务等安全保存位置。
操作步骤
1. 创建密钥
- 在控制台打开 API Key 页面。
- 选择新建密钥。
- 使用能说明用途的名称,例如“个人电脑 Codex”或“测试服务器”。名称不要包含真实密钥。
- 按页面提供的选项选择分组、有效期或限制;不确定时先使用最小必要范围。
- 创建后将密钥保存到安全位置。
本文示例中的 sk-your-key 只是占位符。若创建结果页面只在当次展示完整密钥,请先保存再关闭页面。
2. 放入环境变量
临时设置只影响当前终端,适合首次验证。
macOS / Linux:
bash
export FLASHCODING_API_KEY="sk-your-key"1
Windows PowerShell:
powershell
$env:FLASHCODING_API_KEY = "sk-your-key"1
不同客户端读取的变量名可能不同。例如 Codex 教程使用 FLASHCODING_API_KEY,Gemini CLI 使用 GEMINI_API_KEY。变量名由客户端决定,值仍是同一类 FlashCoding.AI 密钥。
3. 在应用中读取变量
不要把密钥直接写进源码。下面的 Python 示例只展示读取方式:
python
import os
api_key = os.environ["FLASHCODING_API_KEY"]1
2
3
2
3
若使用 .env 文件,应把它加入 .gitignore,并只在受信任的本机或部署环境中保存。
text
.env
.env.*
!.env.example1
2
3
2
3
可以提交不含真实值的 .env.example:
dotenv
FLASHCODING_API_KEY=sk-your-key1
4. 定期轮换
轮换时避免直接覆盖旧密钥:
- 创建一把新密钥。
- 在目标应用中替换并完成一次验证请求。
- 确认使用记录来自新密钥。
- 停用或删除旧密钥。
这样可以减少切换过程中服务中断,也能确认没有遗漏仍依赖旧密钥的应用。
成功验证
用环境变量请求模型列表:
macOS / Linux:
bash
curl -i https://flashcoding.ai/v1/models \
-H "Authorization: Bearer $FLASHCODING_API_KEY"1
2
2
Windows PowerShell:
powershell
curl.exe -i https://flashcoding.ai/v1/models `
-H "Authorization: Bearer $env:FLASHCODING_API_KEY"1
2
2
收到 200 和 JSON 表示密钥已被接受。随后再按五分钟快速接入发送真实模型请求,确认密钥所属分组具备对应能力。
发现泄露时
- 立即在控制台停用或删除泄露密钥。
- 创建新密钥,并只更新确实需要调用的环境。
- 检查使用记录,定位异常请求的时间和范围。
- 若密钥进入 Git 提交,仅删除当前文件不够;还应清理提交历史,并把旧密钥视为永久失效。
- 检查日志、构建产物、截图、工单和聊天记录中是否仍有副本。
不要测试泄露密钥是否“还能用”
一旦确认密钥公开,直接撤销。即使暂时没有异常记录,也不应继续信任它。
常见错误
把 Key 写进前端代码
浏览器会把请求、脚本和 Source Map 暴露给访问者。需要公开访问的网页应通过你自己的后端调用 FlashCoding.AI,不要在前端嵌入长期密钥。
提交了 .env
.gitignore 只阻止尚未被跟踪的文件。已经提交过的 .env 仍会留在历史中,必须先轮换密钥,再处理仓库历史。
多个程序共用一把 Key
共用密钥会让用量归因、撤销和排障变得困难。按设备、环境或应用拆分,名称写清用途。
环境变量在新终端中消失
上面的命令只设置当前会话。需要长期使用时,按操作系统和客户端文档保存到用户环境或受控的启动脚本;不要把真实值写入项目仓库。
Key 正确但模型请求仍失败
密钥通过验证只代表鉴权成功。还需检查模型 ID、分组和协议是否匹配,参见 Base URL 与协议。
下一步
- 用新密钥完成五分钟快速接入。
- 确认不同客户端应填写的 Base URL 与协议。
- 上线前查看状态码与错误并规划密钥轮换。
