在开启代理后,VSCode无法登录微软账号通常是由于UWP应用回环限制或认证模式问题,可通过切换认证模式或使用EnableLoopback工具解决。
解决方法一:切换VSCode微软认证模式
- 打开VSCode,按 CtrlShiftP 调出命令面板。
- 输入 Preferences: Open Settings (UI) 并回车。
- 搜索 microsoft-authentication.implementation。
- 将其值从 msal 改为 classic。
- 重启VSCode后尝试登录微软账号。
此方法适用于系统全局代理导致的 http 404 login.microsoftonline.com 错误,因为VSCode默认使用的Web Account Manager (WAM)基于UWP组件,禁止访问回环地址。
解决方法二:使用EnableLoopback工具解除UWP回环限制
- 下载并打开 EnableLoopback 工具。
- 在列表中找到 工作或学校账户(Work or School Account)。
- 勾选该选项并保存。
- 如果使用代理软件(如V2rayN、Clash Verge Rev),在其设置中也可直接开启UWP回环代理支持。
- 重启VSCode后尝试登录。
此方法解决了UWP应用无法通过本地回环地址访问网络的问题。
解决方法三:远程开发环境下的代理配置
如果你在使用 Remote-SSH 或远程开发环境:
- 确保VSCode远程服务器进程和扩展明确走代理。
- 在本地Clash或代理软件中允许局域网连接。
- 在VSCode远程SSH配置中设置反向隧道,将远程流量通过本地代理端口转发。
- 在VSCode命令面板执行 Remote-SSH: Kill VS Code Server on Host… 并重新连接。
- 此方法可避免代理与远程SSH隧道产生的流量循环和连接阻塞问题 。
总结
- 单机环境:优先尝试切换认证模式为 classic 或使用EnableLoopback工具解除UWP回环限制。
- 远程开发环境:需同时配置远程服务器代理和VSCode远程进程,确保流量正确路由。
- 重启VSCode后再次尝试登录微软账号,通常即可解决代理导致的登录失败问题。