未访问敏感数据的GCP项目使用Google OAuth是否仍需验证?
关于非敏感范围无需验证的确认
是的,Google OAuth官方规则明确:仅请求非敏感/非受限授权范围的应用,无需提交Google验证,用户登录时会看到未验证提示但可选择继续操作。你的测试用户能正常登录,也符合未验证应用仅对测试用户开放完整权限的规则,核心问题确实出在应用被判定请求了敏感/受限范围。
如何识别被判定的敏感范围及解决步骤
检查显式请求的授权范围
查看代码中构建OAuth授权请求的scope参数(比如Vercel Auth或所用OAuth库的配置),确认仅包含以下基础非敏感范围:openid(OpenID Connect必备)email(获取用户邮箱)profile(获取用户姓名、头像等基本资料)
任何超出这些的范围(如drive、gmail.readonly、calendar.events等)都属于敏感/受限类型,会触发验证要求。
查看Google Cloud Console的授权范围列表
进入Google Cloud Console → API和服务 → OAuth同意屏幕,向下滚动到"已授权的范围",这里会列出应用实际请求的所有范围,Google会明确标记哪些是"敏感"或"受限"类型,这是最直接的排查依据。排查隐藏的自动添加范围
部分OAuth SDK或第三方工具(如Vercel的Auth集成)会默认添加额外范围,比如部分库会自动请求https://www.googleapis.com/auth/userinfo.email(和email等效,但需确认是否被误判),或是配置中启用了附带的API权限。可以通过抓包查看实际发送到Google的OAuth请求,确认scope参数的完整内容,避免遗漏隐式添加的范围。重新检查已启用的API
即使你移除了大部分API,仍需确认Google Cloud Console的"已启用的API和服务"中,没有启用任何需要敏感范围的API(如Google Drive、Gmail、People API等)。哪怕代码中未调用,只要API处于启用状态,Google可能会关联到OAuth配置,判定存在敏感数据访问风险。核对OAuth同意屏幕配置
确认应用的域名、隐私政策链接等信息与实际部署的Vercel应用一致,若存在域名不匹配或信息缺失,可能触发额外安全拦截,导致新用户无法跳过未验证提示。
额外建议
如果确认所有请求的都是非敏感范围,但问题依旧,可以在Google Cloud Console的OAuth同意屏幕页面,通过"反馈"通道联系Google支持,告知情况并请求排查是否存在误判。
内容的提问来源于stack exchange,提问作者PLAWSO

