API 认证
概述
所有 Kie.ai API 请求都需要进行认证。我们使用安全的 Bearer Token 认证系统来确保 API 访问得到适当授权。
获取 API Key
要访问 API 服务,您需要:
- 访问 API Key 管理页面
- 登录您的 Kie.ai 账户
- 生成您的专属 API Key
- 复制并安全存储您的密钥
重要提示
您的 API Key 可直接访问您的账户和资源。切勿公开分享或将其包含在客户端代码中。
使用您的 API Key
所有 API 请求必须在 Authorization
请求头中包含您的 API Key:
Authorization: Bearer YOUR_API_KEY
Bearer Token 请求示例
curl -X POST https://kieai.erweima.ai/api/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "deepseek-chat",
"messages": [
{"role": "user", "content": "你好,最近怎么样?"}
]
}'
实现示例
JavaScript/Node.js
const fetchData = async (endpoint, data) => {
const API_KEY = process.env.KIE_API_KEY; // 在环境变量中存储密钥
const response = await fetch(`https://kieai.erweima.ai${endpoint}`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${API_KEY}`
},
body: JSON.stringify(data)
});
if (!response.ok) {
throw new Error(`API 请求失败: ${response.status}`);
}
return response.json();
};
// 使用示例
try {
const response = await fetchData('/api/v1/chat/completions', {
model: 'deepseek-chat',
messages: [
{role: 'user', content: '你好!'}
]
});
console.log(response);
} catch (error) {
console.error('API 错误:', error.message);
}
Python
import os
import requests
def call_api(endpoint, data):
api_key = os.environ.get('KIE_API_KEY') # 安全的密钥管理
if not api_key:
raise ValueError("在环境变量中未找到 API Key")
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
}
response = requests.post(
f'https://kieai.erweima.ai{endpoint}',
headers=headers,
json=data
)
response.raise_for_status() # 处理 HTTP 错误
return response.json()
# 使用示例
try:
result = call_api('/api/v1/chat/completions', {
'model': 'deepseek-chat',
'messages': [
{'role': 'user', 'content': '你好!'}
]
})
print(result)
except requests.exceptions.HTTPError as err:
print(f"HTTP 错误: {err}")
except Exception as err:
print(f"错误: {err}")
安全最佳实践
1. API Key 存储
通过遵循以下准则确保您的 API Key 安全:
- 切勿在应用程序代码中硬编码 API Key
- 不要将 API Key 包含在版本控制系统中
- 使用环境变量或安全的密钥管理服务
- 设置开发和生产环境使用不同的密钥
// 使用环境变量的示例 (Node.js)
require('dotenv').config();
const apiKey = process.env.KIE_API_KEY;
// 在发出请求前验证密钥是否存在
if (!apiKey) {
throw new Error('API Key 未配置');
}
2. 定期轮换密钥
定期轮换您的 API Key 可以增强安全性:
- 每 90-180 天轮换一次密钥
- 一旦怀疑密钥泄露,立即轮换
- 实现无缝轮换以避免服务中断
3. 访问监控
跟踪您的 API Key 使用情况:
- 记录 API 访问模式
- 设置异常活动警报
- 定期审查使用情况
处理认证错误
当认证失败时,API 返回 401 Unauthorized
状态码。常见原因包括:
- 无效的 API Key
- 过期的 API Key
- 缺少 Authorization 请求头
- 请求头格式不正确
错误响应示例
{
"code": 401,
"msg": "需要认证或认证失败"
}
错误处理示例
async function secureApiCall(endpoint, data) {
try {
const response = await fetch(`https://kieai.erweima.ai${endpoint}`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${apiKey}`
},
body: JSON.stringify(data)
});
if (response.status === 401) {
// 处理认证错误
console.error('认证失败:请检查您的 API Key');
// 实现密钥刷新或用户通知逻辑
return;
}
if (!response.ok) {
throw new Error(`API 错误: ${response.status}`);
}
return await response.json();
} catch (error) {
console.error('请求失败:', error.message);
}
}
速率限制和配额
认证也与您账户的速率限制和配额相关:
- 已认证的请求会计入您账户的配额
- 速率限制按 API Key 应用
- 超出配额会导致 429 错误响应
- 通过账户 API 监控您的积分使用情况
专业提示
对于生产应用,在处理速率限制错误时实现带指数退避的重试逻辑。在进行昂贵的 API 调用前,始终检查剩余积分。
需要帮助?
如果您遇到认证问题:
- 验证您的 API Key 是否正确且有效
- 检查您的实现是否与上述示例一致
- 在控制台查看您的账户状态
如需其他帮助,请联系我们的支持团队:[email protected]