> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fortapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API key 与安全

> 创建、使用、撤销 API key

调用任何模型都需要 **API key**（也叫"令牌"）。Key 以 `sk-...` 开头。

## 创建 key

<Steps>
  <Step title="进令牌页">
    控制台 → **「令牌」**。
  </Step>

  <Step title="创建新令牌">
    点 **「创建令牌」**，填：

    * **名称**：自定义，方便区分，例如 `local-dev`、`production-bot`。
    * **过期时间**：默认「无限制」或指定日期。
    * **花费上限（可选）**：限制此 key 最多能从总余额里扣多少 USD。
    * **可访问模型（可选）**：限制此 key 只能调用某些模型。
  </Step>

  <Step title="复制 key">
    创建完成后保存好 key 即可。控制台「令牌」页随时可以再次查看完整 key。
  </Step>
</Steps>

## 使用 key

每次请求在 `Authorization: Bearer sk-...` 头里传：

```bash theme={null}
curl https://www.fortapi.com/v1/chat/completions \
  -H "Authorization: Bearer sk-你的KEY" \
  -H "Content-Type: application/json" \
  -d '{...}'
```

各 SDK 用 `api_key` / `apiKey` 参数传，详见 [API 参考](/zh/api-reference)。

## 安全最佳实践

<CardGroup cols={2}>
  <Card title="❌ 不要 commit 到 Git" icon="ban">
    永远不要把 `sk-...` 写进 commit。仓库（尤其是公开仓）几分钟内会被爬虫扫到。
  </Card>

  <Card title="✅ 用环境变量" icon="circle-check">
    把 key 放 `.env` 或系统环境变量，代码里 `os.getenv("OPENAI_API_KEY")` 读取。
  </Card>

  <Card title="❌ 不要放前端" icon="ban">
    API key 必须只存在后端。前端直接调 FortAPI = 任何打开 DevTools 的人都能拿到 key。
  </Card>

  <Card title="✅ 一个项目一个 key" icon="circle-check">
    不同项目用不同 key。一个泄露，撤销那一个就行，其他不受影响。
  </Card>
</CardGroup>

## 撤销与轮换

如果 key 泄露了（commit 进 Git、发到聊天群、出现在截图）：

<Steps>
  <Step title="立即撤销">
    在 **「令牌」** 找到出问题的 key → **「禁用」** 或 **「删除」**。后续所有用此 key 的请求都返回 `401 Unauthorized`。
  </Step>

  <Step title="建替代 key">
    用同样的限制配置生成一把新 key，更新到应用环境变量里。
  </Step>

  <Step title="审日志">
    在 **「日志」** 检查撤销前是否有可疑请求来自泄露的 key。
  </Step>
</Steps>

## 花费上限

创建 key 时可以设 "最多从总余额扣 X USD"。适用场景：

* **生产/staging 隔离**：production key 不设上限，staging 设 10 USD 上限。
* **委派授权**：给外包开发者一把 50 USD 上限的 key 做某个功能。
* **防失控**：脚本死循环不会烧光余额，会撞到上限就停。

达到上限后，该 key 自动停用（即使总余额还有钱）。

## 多 key 管理

可以同时持有任意数量的有效 key。典型布局：

| Key            | 用途     | 过期   | 上限     |
| -------------- | ------ | ---- | ------ |
| `prod-app`     | 生产     | 不过期  | 无      |
| `staging`      | 预发     | 不过期  | 10 USD |
| `local-dev`    | 本地开发   | 30 天 | 5 USD  |
| `experiment-X` | 试验项目 X | 7 天  | 1 USD  |

这样隔离做得好 —— 哪个 key 出问题，撤销重建就行，其他正常运行。

## 账户被盗怎么办

如果 FortAPI 账户被盗（密码泄露）：

1. 立刻改密码（如果还有访问权限）。
2. 失去访问权限了 —— 用账户注册邮箱写信到 [support@fortapi.com](mailto:support@fortapi.com)，说明情况。
3. 找回访问权限后：撤销所有 API key，重新建。
