Angular13集成Google登录 自有Client ID报popup_closed_by_user错误
Angular 13 集成Google登录报
popup_closed_by_user错误排查 用教程提供的Client ID功能正常,替换自有Client ID就触发该错误,问题100%出在自有Client ID的配置环节,和Angular版本、前端集成代码逻辑无关,按以下顺序逐一排查即可:
- 核对OAuth客户端类型
在Google Cloud控制台创建OAuth 2.0客户端ID时,必须选择Web应用类型,选错为Android、iOS、桌面端等其他类型会直接导致授权流程被拦截,弹窗自动关闭触发该报错。 - 核对已授权JavaScript来源配置
打开对应Web客户端的配置页,将所有运行环境的完整域名(含端口)加入「已授权的JavaScript来源」列表:- 本地开发环境默认填
http://localhost:4200,如果修改过Angular启动端口,替换为实际端口即可,不要追加页面路径,比如不要写http://localhost:4200/login - 线上环境填写实际部署的HTTPS域名,不要混用HTTP/HTTPS协议
- 配置修改后需要等待2~5分钟生效,不要修改完立刻测试
- 本地开发环境默认填
- 核对Client ID正确性
复制Client ID时不要带入多余空格、换行符,不要误将Client Secret(客户端密钥)当做Client ID填入,合法的Client ID为xxxx.apps.googleusercontent.com格式的字符串。 - 排除浏览器拦截影响
广告拦截、隐私防护类浏览器插件可能拦截未在插件规则库内的新Client ID授权请求,直接关闭弹窗触发报错,测试时可暂时禁用相关插件,或打开无痕模式验证是否为插件导致。

快速验证技巧:将自有Client ID填入官方Google登录Demo页测试,如果Demo页同样报该错误,可完全排除前端代码问题,只需要排查控制台侧配置即可。
内容的提问来源于stack exchange,提问作者Aar Man
相关产品推荐
相关产品推荐

