API Key 返回 Invalid token / 401 怎么办
当 Claude Code、Cursor、Dify、NextChat、OpenAI SDK 或自研客户端提示 Invalid token、401、unauthorized、未认证时,可以先按这张清单排查。
一句话答案:Invalid token / 401 表示认证未通过。确认客户端使用的是控制台当前有效且完整的 Token,请求头是
Authorization: Bearer sk-完整Token;如果 Token 已停用、泄露或无法确认,重新创建并替换旧 Token。先判断是哪一类错误
Invalid token / 401 / unauthorized优先检查 Token 是否复制完整、是否用了旧 Token、客户端是否把 Token 填在了正确位置,以及请求头是否包含
Bearer 和一个空格。Token 与控制台不一致重新复制控制台当前有效 Token,避免使用截断值、带星号的展示值或其他账号的 Token。
旧 Token 仍在生效检查客户端、环境变量和部署平台中是否还保存着旧值,替换后重新启动相关进程。
Token 已停用或无法确认在令牌管理页重新创建 Token,并立即替换所有旧配置。
推荐排查步骤
打开词元 API 控制台,进入令牌管理,复制当前正在使用的 Token。
确认客户端里的 API Key 与控制台 Token 完全一致,不要多空格、少字符、换行截断或混用旧 Token。
确认请求头严格使用
Authorization: Bearer sk-完整Token,并保留 Bearer 后的一个空格。如果你刚重新生成、停用或切换过 Token,把本地环境变量、部署平台密钥和客户端配置里的旧值一起替换。
保存配置并重启仍可能缓存旧 Token 的客户端或服务。
如果当前 Token 已停用、泄露或仍无法确认,重新创建 Token 后再做最小请求验证。
最小请求格式
如果你使用 OpenAI 兼容接口,请先用最小请求验证 Token 能否通过认证。关键点是 Authorization 必须带 Bearer,并且 Bearer 后面有一个空格。
curl https://api.token-ciyuan.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-完整Token" \
-d '{
"model": "doubao-seed-2.0-lite",
"messages": [{"role": "user", "content": "reply ok"}],
"max_tokens": 16
}'
提示:不要把 Token 发到公开聊天、截图或代码仓库里。如果需要协助,只提供 Token 名称、请求时间和报错截图,不要发送完整 Token。
常见客户端位置
不同工具的配置名不同,重点是找到实际生效的 API Key / Token,并确认它与控制台当前有效值一致。
Claude Code / Codex / Cursor 类工具检查模型供应商配置、OpenAI 兼容入口、自定义 API 地址和环境变量。
Dify / NextChat / ChatBox 类工具检查 API Key 是否保存到了当前工作区,以及运行中的配置是否仍引用旧 Token。
OpenAI SDK / 自研代码检查
apiKey 的实际取值,以及环境变量是否覆盖了代码中的新 Token。新生成 Token 后仍然 401
先确认复制的是完整 Token不要只复制开头,也不要复制带星号的展示值。控制台复制按钮拿到的才是完整 Token。
再检查旧配置是否仍在生效IDE 插件、环境变量、服务器部署平台、工作流工具可能各保存一份 API Key,需要逐一替换。
最后再次核对实际生效值确认客户端已保存新 Token,并重启会缓存环境变量或密钥的进程。
常见问题
Invalid token / 401 应先检查什么?
先检查 Token 是否完整、Authorization 是否为 Bearer 加一个空格和完整 Token,以及客户端是否仍在使用旧 Token。
控制台 Token 与客户端不一致怎么办?
重新复制控制台当前有效 Token,替换客户端、环境变量和部署平台中的旧值,然后保存并重启相关进程。
新生成 Token 后还是 401 怎么办?
确认新 Token 已保存到实际运行的配置中,并清理旧环境变量或客户端缓存;请求头应为 Authorization: Bearer sk-完整Token。
重新生成 Token 后还可以继续用旧 Token 吗?
不建议。重新生成或停用 Token 后,应把客户端、环境变量、部署平台里的旧 Token 全部替换为当前有效 Token。