You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署在Google Cloud Run的Flask应用Google OAuth Redirect URI mismatch报错如何处理

问题根因
  • Google Cloud Run 前端内置HTTPS负载均衡,用户HTTPS请求到达负载均衡后,会以HTTP协议转发到后端Flask容器,Flask默认无法感知外层的HTTPS协议。
  • 你在google_login中手动指定_scheme='https'生成的授权请求重定向地址是正确的,但OAuth库在回调阶段执行google.authorize_access_token()时,会自动从当前请求上下文拉取当前地址作为校验用重定向地址,这个地址默认会使用Flask感知到的HTTP协议,和GCP凭证中配置的HTTPS重定向地址不匹配,因此抛出错误。
  • GCP生产状态的OAuth应用强制要求重定向URI使用HTTPS协议,因此修改配置为HTTP的方案不可行。
解决方案
  1. 开启Flask代理支持,信任Cloud Run负载均衡传递的X-Forwarded-Proto请求头,让Flask可以正确识别原始请求协议。在Flask应用初始化代码中添加如下配置:
from werkzeug.middleware.proxy_fix import ProxyFix
# 参数配置匹配Cloud Run 1层代理的架构
app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_proto=1, x_host=1, x_port=1)

ProxyFix是Flask依赖库Werkzeug内置的中间件,不需要额外安装依赖。

  1. (可选)全局配置Flask默认URL协议为HTTPS,避免其他地方生成HTTP链接:
app.config['PREFERRED_URL_SCHEME'] = 'https'

配置后原有url_for中的_scheme='https'参数可以省略,不影响功能。

  1. 确认GCP OAuth凭证中的重定向URI保持为https://mydomain.run.app/authorize,无需修改为HTTP版本。

修改完成后重新部署到Cloud Run即可解决重定向不匹配的问题。


内容的提问来源于stack exchange,提问作者Santhoshkumar Sundararaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:15:03