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