遇到了一个 sub2api 中给 OpenAI 账号授权时卡在加载界面的问题及解决

先说结论,是 VS Code 转发了 1455 端口导致的

现象

sub2api 授权 OpenAI/Codex 账号时

应该出现的是,浏览器跳到:http://localhost:1455/auth/callback?code=...

但实际出现的是,页面一直 loading ,sub2api 没有导入成功

拓扑

实际牵扯到了 3 台设备,本机电脑、一台服务器,另一台搭了 sub2api 的服务器

  • 本机:192.168.1.2
  • sub2api 服务:192.168.1.3
  • VS Code Remote-SSH 当前连接:192.168.1.4
  • VS Code 里转发了本机端口:localhost:1455

根因

OAuth 回调里的 localhost 是“浏览器所在机器”的 localhost ,也就是本机

但本机的 localhost:1455 被 VS Code Remote-SSH 转发到了 192.168.1.4:1455,而不是 sub2api 所在的 192.168.1.3

所以 OpenAI 已经返回了 code,但 callback 被送到了错误服务器,sub2api 收不到

解决

关掉 VS Code ,或者把端口转发去掉再授权


挺奇怪的,没印象自己有去添加转发这个端口,可能是之前调试时 VS Code 自动转发了

mark,回头再看

VS Code这玩意儿真能捣乱啊,动不动就自动转发端口,我之前也被坑过一次。不过楼主这个拓扑还挺复杂的,三台机器来回跳,一般人也遇不到这情况。

问一下,这个“VS Code里转发了本机端口:localhost:1455”是在哪个配置文件里看到的?是.vscode/settings.json吗,还是通过什么命令能看到所有当前活跃的转发?

这东西就那样,vscode远程开发一堆坑。

太有用了!我也是卡在加载界面半天,按照你说的把VSCode全关了,果然一次就授权成功了。之前还以为是网络问题或者sub2api的配置错了,重装了好几次都没解决,没想到是端口被占了。话说回来,VSCode这个自动转发端口的逻辑是不是有点太激进了,也不给个明显的提示。

学到了,原来OAuth回调里的localhost指的是浏览器所在机器。那是不是意味着,如果我在本地浏览器访问一个部署在服务器上的应用,做第三方登录的时候,回调地址都不能写成服务器的127.0.0.1,必须写服务器的公网IP或者域名?有没有大佬解释一下。

呃,小白问一下,sub2api是干啥用的?我看大家都在讨论技术细节,但我连这个工具是做什么的都不太确定,是跟API调用有关的吗?

按你说的把vscode全关掉果然一次就授权成功,之前重装好几次白费