【Bug已解决】openclaw: session expired / Authentication token invalid — OpenClaw 会话过期解决方案1. 问题描述OpenClaw 的会话过期或认证令牌失效# 会话过期 $ openclaw 分析代码 Error: Session expired Your session has expired. Please re-authenticate. # 或令牌无效 $ openclaw --print task Error: 401 Unauthorized Invalid authentication token. # 或令牌过期 $ openclaw task Error: token_expired Your API token has expired. Please refresh. # 或 OAuth 令牌失效 $ openclaw Error: OAuth token invalid Please re-authenticate.这个问题在以下场景中特别常见API Key 过期或被撤销OAuth 令牌过期长时间未使用后令牌过期账户密码更改令牌刷新失败多设备登录冲突2. 原因分析原因分类表原因分类具体表现占比API Key 撤销被删除约 35%OAuth 过期时限约 25%长时间未用令牌过期约 15%密码更改令牌失效约 10%刷新失败网络约 10%多设备冲突踢出约 5%3. 解决方案方案一重新设置 API Key最推荐# 步骤 1获取新 API Key # 登录 https://console.anthropic.com/ # Settings → API Keys → Create Key # 步骤 2设置环境变量 export ANTHROPIC_API_KEYsk-ant-api03-xxxxx # 步骤 3永久设置 echo export ANTHROPIC_API_KEYsk-ant-api03-xxxxx ~/.bashrc source ~/.bashrc # 步骤 4验证 openclaw --print hello方案二重新认证# 步骤 1重新登录 openclaw login # 步骤 2按提示完成认证 # 浏览器会打开 Anthropic 登录页面 # 步骤 3清除旧凭证 rm -rf ~/.openclaw/credentials.json openclaw login # 步骤 4验证 openclaw --print hello方案三检查凭证文件# 步骤 1检查凭证 ls -la ~/.openclaw/credentials.json cat ~/.openclaw/credentials.json # 步骤 2如果文件损坏 rm ~/.openclaw/credentials.json openclaw login # 步骤 3检查权限 chmod 600 ~/.openclaw/credentials.json # 步骤 4验证 openclaw --print hello方案四验证 API Key 有效性# 步骤 1测试 API Key curl -s https://api.anthropic.com/v1/messages \ -H x-api-key: $ANTHROPIC_API_KEY \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d {model:claude-sonnet-4-20250514,max_tokens:10,messages:[{role:user,content:hi}]} # 步骤 2如果 401Key 无效 # 登录 console.anthropic.com 重新创建 # 步骤 3如果 403Key 被限制 # 检查账户状态 # 步骤 4验证 openclaw --print hello方案五清除缓存重新登录# 步骤 1清除所有凭证 rm -rf ~/.openclaw/credentials.json rm -rf ~/.openclaw/auth* rm -rf ~/.openclaw/session* # 步骤 2重新登录 openclaw login # 步骤 3验证 openclaw --print hello # 步骤 4如果仍失败使用 API Key export ANTHROPIC_API_KEYsk-ant-api03-xxxxx openclaw --print hello方案六使用 .env 文件# 步骤 1创建 .env 文件 cat .env EOF ANTHROPIC_API_KEYsk-ant-api03-xxxxx EOF # 步骤 2加载 .env export $(cat .env | xargs) # 步骤 3验证 openclaw --print hello # 步骤 4确保 .env 在 .gitignore 中 echo .env .gitignore4. 各方案对比总结方案适用场景推荐指数难度方案一API Key通用⭐⭐⭐⭐⭐低方案二重新认证OAuth⭐⭐⭐⭐⭐低方案三检查凭证损坏⭐⭐⭐⭐⭐低方案四测试 KeyKey 无效⭐⭐⭐⭐⭐低方案五清除缓存严重⭐⭐⭐⭐⭐低方案六.env 文件项目⭐⭐⭐⭐低5. 常见问题 FAQ5.1 API Key 会过期吗API Key 不会自动过期但可以被手动撤销。5.2 如何获取 API Key登录 https://console.anthropic.com/ → Settings → API Keys → Create。5.3 如何重新认证openclaw login5.4 凭证文件在哪里通常在~/.openclaw/credentials.json。5.5 如何检查 Key 是否有效curl -s https://api.anthropic.com/v1/messages \ -H x-api-key: $ANTHROPIC_API_KEY \ -d {model:claude-sonnet-4-20250514,max_tokens:10,messages:[{role:user,content:hi}]}5.6 401 和 403 的区别401: 密钥无效或过期403: 权限不足账户限制5.7 多设备登录冲突在一台设备登录可能导致另一台设备令牌失效。重新登录即可。5.8 API Key 和 OAuth 的区别API Key: 永久有效适合 CI/CDOAuth: 自动刷新适合交互使用5.9 .env 文件安全吗确保 .env 在 .gitignore 中不要提交到 Git。5.10 排查清单速查表□ 1. export ANTHROPIC_API_KEYsk-ant-xxx □ 2. openclaw login 重新认证 □ 3. rm ~/.openclaw/credentials.json 清除 □ 4. curl 测试 Key 有效性 □ 5. console.anthropic.com 创建新 Key □ 6. chmod 600 credentials.json □ 7. .env 文件 gitignore □ 8. source ~/.bashrc 加载 □ 9. 401 Key 无效 □ 10. 403 权限不足6. 总结根本原因会话过期最常见原因是 API Key 撤销35%和 OAuth 过期25%最佳实践使用export ANTHROPIC_API_KEYsk-ant-api03-xxx设置正确的密钥重新认证使用openclaw login重新认证凭证损坏rm ~/.openclaw/credentials.json清除后重新登录最佳实践建议CI/CD 中使用 API Key永久有效交互使用使用 OAuth自动刷新故障排查流程图flowchart TD A[会话过期] -- B[export ANTHROPIC_API_KEY] B -- C[openclaw --print hello 验证] C -- D{成功?} D --|是| E[✅ 问题解决] D --|否| F[openclaw login 重新认证] F -- G{成功?} G --|是| E G --|否| H[检查凭证文件] H -- I[ls ~/.openclaw/credentials.json] I -- J{文件存在?} J --|否| K[openclaw login] J --|是| L[rm 清除损坏凭证] L -- K K -- M{成功?} M --|是| E M --|否| N[测试 API Key] N -- O[curl api.anthropic.com] O -- P{Key 有效?} P --|否| Q[console.anthropic.com 创建新 Key] P --|是| R[清除缓存] Q -- B R -- S[rm -rf ~/.openclaw/credentials*] S -- F E -- T[CI/CD: 使用 API Key] T -- U[✅ 长期方案]