Windows 下 OpenCode使用 ChatGPT Pro/Plus 鉴权报错 403 的排查与解决

一、问题背景

在 Windows 上使用 OpenCode时,需要通过 opencode auth login 完成 OpenAI 的登录鉴权。我选择的是 "ChatGPT Pro/Plus" 登录方式。过程中浏览器端提示授权完成,但 opencode 终端侧在等待回调后报错,导致无法完成登录。

二、问题现象:Token exchange failed: 403

在 PowerShell 中执行:

powershell 复制代码
opencode auth login

选择 Provider:OpenAI

选择 Login method:ChatGPT Pro/Plus

随后 opencode 会输出一段授权链接,提示在浏览器中完成授权。浏览器显示授权成功后,终端侧可能出现类似错误:

  • Token exchange failed: 403
  • Unexpected error, check log file at ...
  • 最后以 Canceled 结束

从提示看得很明确:失败发生在 "token exchange(令牌交换)" 这一步,而不是浏览器登录本身。

三、原因分析(为什么浏览器成功但 CLI 失败)

ChatGPT Pro/Plus 的 OAuth 流程一般分两段:

1)浏览器端完成账号登录与授权,获取 authorization code。

2)CLI 工具在本地发起请求,将 code 交换为 access token / refresh token(token exchange)。

实际问题往往出在第二步:CLI 发出的 token 请求受网络环境影响(公司网络、运营商链路、透明代理、安全策略、DNS/证书拦截等),导致服务端直接返回 403。也就是说:浏览器能登录,不等于命令行工具能顺利完成 token 交换。

四、解决方案:在 PowerShell 临时设置 HTTP/HTTPS 代理环境变量

我这次最终通过"让 opencode 的网络请求走本机代理"解决问题。关键点是:在 Windows 上,不同终端有不同语法。我这里使用的是 PowerShell,所以用 $env: 方式设置环境变量。

在 PowerShell 中依次执行:

powershell 复制代码
$env:HTTPS_PROXY = "http://127.0.0.1:7890"
$env:HTTP_PROXY  = "http://127.0.0.1:7890"
$env:NO_PROXY    = "localhost,127.0.0.1,::1"

说明:

  • 127.0.0.1:7890 是我的本机代理 HTTP 端口。
  • NO_PROXY 很重要,用来避免访问 localhost 的回调地址也走代理,从而导致回调失败。

然后重新执行鉴权:

powershell 复制代码
opencode auth login

同样选择 OpenAI → ChatGPT Pro/Plus,完成浏览器授权后,终端侧会出现类似输出:

  • Login successful
  • Done

到这里就表示鉴权完成。

五、如何验证鉴权是否已经写入成功

鉴权完成后建议立即验证一下登录状态:

powershell 复制代码
opencode auth ls

如果能看到 OpenAI 相关条目,说明凭证已被保存,后续可直接使用。

相关推荐
笨鸟先飞,勤能补拙9 小时前
从预测到决策:人工智能与机器学习的系统方法、工程闭环与现实边界
大数据·人工智能·windows·python·机器学习·密码学
燕云少君9 小时前
你只是跟AI聊聊天,它已经准备好刷你的卡了
人工智能·chatgpt·openai
程序员-李俞10 小时前
Mistral OCR 4真正改变的不是“识字”:文档AI正在变成Agent的数据入口
人工智能·windows·ai作画·aigc·ocr·ai编程·ai写作
C++ 老炮儿的技术栈11 小时前
Qt5.9.1 Windows 完整开发环境搭建流程
开发语言·c++·windows·qt·编辑器·代码化
笨鸟先飞,勤能补拙12 小时前
AI与深度学习:从原理到应用
人工智能·windows·vscode·深度学习·机器学习·网络安全·github
bkspiderx12 小时前
从零开始:VS Code搭建C/C++开发环境全指南(Windows/macOS/Linux)
c语言·c++·windows·vs code·c/c++开发环境
Rudon滨海渔村13 小时前
镜像转换esd转iso - VMware虚拟机如何安装或恢复(.esd)的Windows系统
windows·vmware·iso·esd
yingyuecom14 小时前
Seedance 2.5正式发布:映悦AI迎来“更长、更可控、更极致”的视频生成时代
人工智能·gpt·chatgpt·prompt·aigc
DS随心转APP14 小时前
生成word文档的ChatGPT格式乱码终结者:AI导出鸭横向测评与工程化架构解析 摘要
人工智能·ai·chatgpt·word·deepseek·ai导出鸭
西安景驰电子14 小时前
《PTP精确时间协议系列》第二篇:工程部署、调试与性能优化
运维·服务器·网络·数据库·windows·性能优化