测试模式Google OAuth 2.0换取令牌提示应用不合规如何排查
Google OAuth 2.0 测试模式换token报合规错误排查方案
以下是该场景下最高频的配置错误点,按踩坑概率从高到低排序:
- 测试用户列表漏加:测试模式下,所有走授权流程的账号(包括项目所有者自己的谷歌账号),必须全量添加到OAuth同意屏幕的「测试用户」列表中,不在列表内的账号发起授权,换token阶段必触发该合规报错,这是90%同类问题的根因。
redirect_uri不匹配:换token请求中携带的redirect_uri参数,必须和Google Cloud控制台对应OAuth2.0客户端ID中配置的重定向地址逐字符完全一致,包括协议头(http/https)、端口、路径、末尾斜杠、大小写,任何差异都会被安全规则拦截,不要凭记忆判断配置正确,逐字符比对。- 基础参数校验失败:
- 确认请求携带的
client_id、client_secret和当前授权流程使用的客户端凭据完全对应,不要串用其他项目、其他客户端类型的凭据; - 授权码
code有效期仅10分钟、且只能使用一次,复用过期code、跨账号/跨客户端使用code都会触发拦截; - 若使用SPA前端直连的PKCE授权模式,必须在换token请求中携带和授权阶段
code_challenge匹配的code_verifier参数,参数缺失或计算错误也会报合规错误。
- 确认请求携带的
- OAuth同意屏幕配置缺失:哪怕处于测试模式,同意屏幕的必填项(应用名称、用户支持邮箱、开发者联系信息)不能留空,留空会直接触发安全校验失败;同时请求的所有权限scope必须提前在同意屏幕中声明,未声明的scope会被拦截。
- 客户端类型配置错误:创建OAuth2.0客户端时选择的应用类型必须和实际使用场景匹配,比如web服务端集成要选「Web应用」类型,错选成桌面端、移动端、Chrome扩展类型的话,对应场景的请求会被判定为不符合安全规则。
你当前收到的报错属于通用安全拦截返回,具体内容如下:
{ "error": "invalid_request", "error_description": "You can't sign in to this app because it doesn't comply with Google's OAuth 2.0 policy for keeping apps secure. You can let the app developer know that this app doesn't comply with one or more Google validation rules." }
提示:测试模式下出现该报错不需要提交应用上线审核,全部是配置层面的问题,核对完上述项基本都能定位解决。
内容的提问来源于stack exchange,提问作者Austin
相关产品推荐
相关产品推荐

