Google API认证报错:客户端来源被blocked问题排查咨询
Google OAuth checkOrigin 接口返回 blocked:true 问题排查
响应字段含义
返回的三个字段对应含义如下:
valid: true:传入的client_id格式合法,且在Google OAuth客户端库中存在对应记录blocked: true:当前请求携带的origin未通过该客户端的跨源白名单校验,Google会直接拦截后续所有授权流程suppressed: false:拦截行为来自Google服务端规则,不是浏览器插件、隐私模式、跨域拦截插件等本地环境导致的
修复步骤
已经配置Origin和重定向URL仍报错,按以下优先级排查:
- 核对客户端类型
打开Google Cloud控制台,找到出问题的这组凭证,确认「应用类型」为Web应用。如果误创建为Android、iOS、桌面端、Chrome扩展等其他类型,即使手动添加了授权来源,校验逻辑也不会生效,必须新建正确类型的Web应用凭证。 - 校验授权JavaScript来源格式
Google对授权来源的格式校验零容错,不允许带尾斜杠、不允许带子路径:正确格式示例:
https://app.website.com
错误格式示例:https://app.website.com/、https://app.website.com/callback、http://app.website.com(非localhost调试时必须用https协议)
配置修改后有5~10分钟的全局缓存生效时间,修改完不要立刻测试,等待缓存过期后再验证。 - 检查OAuth同意屏幕配置
进入OAuth同意屏幕页面,如果应用发布状态为测试中,必须将当前测试使用的Google账号添加到「测试用户」列表,否则跨源校验会被主动拦截。如果应用为已发布状态,确认没有配置额外的域名访问限制规则。 - 核对client_id准确性
多组凭证并存时极易出现复制错client_id的情况,哪怕少一个、错一个字符,都会匹配到错误的客户端配置。将报错请求里的client_id和控制台对应凭证的ID逐字符比对,排除复制错误。 - 排除本地缓存干扰
之前错误配置产生的blocked结果会被浏览器缓存,直接硬刷新(Ctrl+Shift+R)或者打开无痕窗口重新测试,避免旧缓存影响结果判断。
内容的提问来源于stack exchange,提问作者sbakir
相关产品推荐
相关产品推荐

