概述
FIM One API 支持两种身份验证方法:- API 密钥 — 用于服务间集成的简单、长期有效的令牌
- JWT 令牌 — 来自用户登录的短期令牌(用于 SSE 端点)
API 密钥
API 密钥是与您的用户账户关联的长期凭证。它们适用于:- 服务器到服务器的集成
- 计划脚本和自动化
- 外部应用程序访问 FIM One
创建 API 密钥
- 登录到您的 FIM One 门户
- 转到 设置 → API 密钥
- 点击 创建 API 密钥
- 输入名称(例如,“生产集成”)
- (可选)设置作用域以限制访问权限
- (可选)设置过期日期
- 点击 创建
- 立即复制密钥 — 它只会显示一次
fim_your44characterkeystringhere(以 fim_ 前缀开头)
使用 API 密钥
在Authorization 标头中将密钥作为 Bearer 令牌包含:
API 密钥功能
可见性: 每个密钥显示:- 密钥前缀(前 8 个字符用于识别)
- 创建日期
- 最后使用时间戳
- 总请求数
- 活跃状态
- 过期日期(如果设置)
- 启用/禁用密钥而无需删除它们
- 设置自动过期日期
- 永久删除密钥
- 跟踪使用模式
作用域
作用域限制 API 密钥可以访问的内容。如果未设置作用域,密钥具有完全访问权限。 可用作用域:
创建具有作用域的密钥:
JWT 令牌
JWT 令牌是短期的,在登录时颁发。它们用于:- SSE 流式端点:在
/api/react和/api/dag的请求体中传递令牌 - 门户会话:前端身份验证
获取 JWT Token
当您通过网络门户登录或调用身份验证端点时,JWT token 会自动颁发:使用 JWT 进行流式传输
对于 SSE 端点,在请求体中包含令牌:fetch 和可读流(该端点仅支持 POST,因此仅支持 GET 的原生 EventSource 无法使用):
令牌刷新
访问令牌在 2 小时后过期。使用刷新令牌获取新的访问令牌,无需重新登录:安全最佳实践
API 密钥
-
存储在环境变量中:
然后在代码中引用:
-
使用密钥轮换:
- 创建新密钥
- 更新您的应用程序
- 删除旧密钥
- 每季度重复一次
-
设置过期日期:
- 为临时集成使用短期密钥
- 定期要求重新身份验证
-
使用作用域密钥:
- 除非必要,否则不要使用”完全访问”密钥
- 为不同的服务创建单独的密钥
- 限制密钥泄露时的损害
-
监控使用情况:
- 检查”最后使用”时间戳
- 查看请求计数
- 删除未使用的密钥
JWT 令牌
- 保持短生命周期:访问令牌在 2 小时后过期
- 安全存储:
- 在浏览器中:使用 HttpOnly cookies(比 localStorage 更安全)
- 在服务器中:使用安全的会话存储
- 不要在日志中暴露:仅记录令牌前缀,不记录完整令牌
- 仅使用 HTTPS:不要通过未加密的连接发送令牌
速率限制
计划在未来版本中实现按密钥的速率限制。目前没有强制执行的按密钥请求限制。故障排除
无效令牌错误
- API 密钥前缀错误(必须以
fim_开头) - JWT 令牌已过期(刷新它)
- 令牌格式错误或已损坏
- API 密钥已被删除
未授权错误
- 未提供授权标头
- 请求体中缺少令牌(对于 SSE 端点)
- API 密钥已禁用
禁止错误
- API 密钥具有作用域访问权限,缺少所需的作用域
- 用户账户具有受限权限
过期的令牌
环境变量设置
Python
Node.js
Bash
支持
如有身份验证问题:- 查看 API 概览 了解响应格式详情
- 使用
GET /api/auth/verify检查令牌过期情况 - 如果您认为密钥已被泄露,请联系支持