跳转到内容
返回主站

401 Unauthorized

401 Unauthorized 表示请求未通过身份验证。这是使用 零派智能API 时最常见的错误之一。

错误示例

{
"error": {
"message": "Invalid API key",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}

原因分析

原因说明
API Key 无效Key 不存在或已被删除
API Key 缺失请求头中没有携带 Authorization 字段
Key 格式错误Key 中包含空格、换行符或拼写有误
Key 已过期Key 超过有效期,已被系统自动禁用
Authorization 格式错误请求头格式不符合 Bearer 规范

排查步骤

1. 检查请求头是否携带了 API Key

Terminal window
# 错误:缺少 Authorization 头
curl "$BASE_URL/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-4o", "messages": [{"role": "user", "content": "Hello"}]}'

2. 检查 Authorization 头格式是否正确

Terminal window
# 错误:缺少 Bearer 前缀
curl "$BASE_URL/v1/chat/completions" \
-H "Authorization: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-4o", "messages": [{"role": "user", "content": "Hello"}]}'
Terminal window
# 正确:使用 Bearer 前缀
curl "$BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-4o", "messages": [{"role": "user", "content": "Hello"}]}'

3. 检查 Key 中是否有多余字符

Terminal window
# 查看环境变量值(检查前后是否有空格或换行)
echo "$API_KEY" | cat -A

4. 在管理后台确认 Key 状态

  1. 登录管理后台
  2. 进入 API Key 管理 页面
  3. 查看对应 Key 的状态是否为「正常」
  4. 确认 Key 没有被禁用或删除

解决方案

Key 无效或已过期

  1. 在管理后台创建一个新的 API Key

  2. 将新 Key 配置到环境变量中

    Terminal window
    export API_KEY="sk-your-new-api-key"
  3. 重启应用程序使环境变量生效

Key 格式错误

# Python:清理 Key 中的隐藏字符
import os
api_key = os.environ.get("API_KEY", "").strip()
// JavaScript:清理 Key 中的隐藏字符
const apiKey = process.env.API_KEY.trim();

Authorization 头格式错误

确保使用标准 Bearer Token 格式:

# Python
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
// JavaScript
const headers = {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json"
};

验证方法

修改后,发送一个简单请求验证 Key 是否生效:

Terminal window
curl "$BASE_URL/v1/models" \
-H "Authorization: Bearer $API_KEY"
  • 返回 200 及模型列表 → 问题已解决
  • 仍然返回 401 → 重新确认 Key 是否正确,或联系管理员检查账户状态