2.4 KiB
2.4 KiB
2026-03-09
Claude OAuth 认证失败 (21:00-21:38)
- 目标: 更新 CLIProxyAPI 的 Claude 认证 (mf0@msn.com)
- 问题: OAuth 回调一直失败
- SSH 隧道建立成功 (54545 端口)
- CLIProxyAPI 在服务器上运行
- Chrome 访问 OAuth URL 并点击 Authorize
- 但回调重定向到 localhost:54545/callback 时显示 chrome-error://chromewebdata/
- 回调请求没有到达服务器
- 尝试过的方法:
- CDP 自动化填写邮箱 (失败,无法填写)
- 手动登出 Maka 账号,重新登录 mf0@msn.com
- 多次重启 SSH 隧道和 OAuth 进程
- 使用不同的 OAuth URL (多次生成新的 code_challenge)
- 根本原因: 不明确,可能是:
- SSH 隧道转发有问题
- Chrome 的安全策略阻止了 localhost 回调
- CLIProxyAPI 的 OAuth 回调监听有问题
- 最终解决 (21:52 成功):
- State mismatch 是关键问题: 每次启动 CLIProxyAPI 会生成新的 OAuth state,必须用最新的 URL
- 日志显示 "State mismatch: expected X, got Y" → 说明用了旧 URL
- Docker 容器缺少配置文件: 容器启动失败因为找不到
/CLIProxyAPI/config.yaml - 解决方案:
- 创建 config.yaml:
port: 8317, api-keys: ["sk-cliproxy-default-key-2026"], auth-dir: "/root/.cli-proxy-api" - 挂载到容器:
-v /opt/cliproxy/config.yaml:/CLIProxyAPI/config.yaml:ro - 挂载认证目录:
-v /root/.cli-proxy-api:/root/.cli-proxy-api
- 创建 config.yaml:
- 正确流程:
- 启动 CLIProxyAPI (在配置目录下):
cd /root/.cli-proxy-api && /tmp/CLIProxyAPI -claude-login -no-browser -oauth-callback-port 54545 - 建立 SSH 隧道:
ssh -L 54545:127.0.0.1:54545 root@195.128.100.201 - 获取最新的 OAuth URL (包含新 state)
- Chrome 访问并点击 Authorize
- 回调成功 → 认证文件更新
- 重启 Docker 容器
- 启动 CLIProxyAPI (在配置目录下):
CLIProxyAPI Docker 配置 (21:56)
- 容器启动命令:
docker run -d --name cli-proxy-api --restart always \ -p 8317:8317 \ -v /opt/cliproxy/config.yaml:/CLIProxyAPI/config.yaml:ro \ -v /root/.cli-proxy-api:/root/.cli-proxy-api \ eceasy/cli-proxy-api:latest - 配置文件位置: /opt/cliproxy/config.yaml
- 认证文件位置: /root/.cli-proxy-api/*.json
- API 端点: http://195.128.100.201:8317/v1
- API Key: sk-cliproxy-default-key-2026
- 可用模型: claude-sonnet-4-6, claude-opus-4-6, gpt-5.4, gemini-2.5-pro 等