Google Cloud Shell中OAuth2请求报‘Access blocked’错误的求助
检查Cloud Shell专属的重定向URI
Cloud Shell对外提供的访问URL是https://<随机ID>-5000.shell.cloud.google.com格式的完整域名,必须将这个具体的URL(包含https前缀)添加到OAuth2客户端的Authorized redirect URIs列表中,不能只填http://localhost:5000或通配符格式。注意每次重启Cloud Shell后域名可能变化,需要重新获取并更新配置。核对客户端ID/密钥与环境一致性
确保Cloud Shell中代码使用的CLIENT_ID和CLIENT_SECRET,与Google Cloud Console中创建的Web应用类型OAuth客户端完全匹配,避免混用本地测试用的客户端配置。确保请求中的redirect_uri严格匹配
代码里构建授权请求时,redirect_uri参数必须和控制台配置的URI完全一致。不要硬编码localhost:5000,而是动态获取Cloud Shell的外部访问域名来拼接正确的重定向地址。验证授权范围匹配
检查Google Cloud Console中客户端配置的Authorized scopes,是否与代码中请求的权限范围完全一致,范围不匹配会直接导致请求被拦截。调整服务监听地址
确保代码中服务监听的是0.0.0.0:5000而非localhost:5000,比如Flask示例要修改为app.run(host='0.0.0.0', port=5000),否则外部请求无法访问Cloud Shell内的服务。清除浏览器缓存或使用无痕模式
旧的授权会话缓存可能引发冲突,尝试用无痕模式打开Cloud Shell的访问链接,或者清除浏览器缓存后重新发起授权请求。
内容的提问来源于stack exchange,提问作者user23991531

