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

调用google_auth_oauthlib库时出现redirect uri mismatch错误的解决方法

修复Google OAuth URI不匹配问题

核心问题分析

  • 默认重定向URI带端口:run_local_server() 默认使用的重定向URI是 http://localhost:8080/(或随机分配端口),但你的client-secret中只配置了不带端口的http://localhost和https://localhost,端口不匹配直接触发错误。
  • Cloud Terminal环境限制:云端终端运行本地服务器模式时,本地浏览器无法直接访问云端的localhost端口,这会进一步导致认证流程异常。

具体修复步骤

步骤1:更新Client Secret的重定向URI

在Google Cloud Console的OAuth 2.0客户端配置中,添加以下重定向URI:

  • http://localhost:8080/(匹配默认端口)
  • urn:ietf:wg:oauth:2.0:oob(适配控制台授权模式)

步骤2:修改代码适配环境

根据Cloud Terminal的特性,推荐两种可行方案:

方案A:指定固定端口匹配配置

修改代码指定固定端口,确保和client-secret中配置的URI完全一致:

auth_flow = flow.InstalledAppFlow.from_client_secrets_file(
    client_secrets_file=client_secret_json_file_path,
    scopes=scopes
)
# 指定固定端口8080,需确保client-secret已添加http://localhost:8080/
auth_flow.run_local_server(port=8080)

方案B:切换到控制台授权模式

针对云端终端无法直接访问本地端口的情况,改用控制台模式,无需依赖本地服务器:

auth_flow = flow.InstalledAppFlow.from_client_secrets_file(
    client_secrets_file=client_secret_json_file_path,
    scopes=scopes
)
# 运行后会输出授权URL,手动复制到浏览器打开,获取授权码后粘贴回终端即可完成认证
auth_flow.run_console()

注意:使用此方案必须提前在client-secret中添加urn:ietf:wg:oauth:2.0:oob作为重定向URI。

步骤3:验证配置生效

修改完客户端配置后,务必重新下载最新的client-secret JSON文件替换本地文件,再重新运行代码。

内容的提问来源于stack exchange,提问作者Elad Ben-David

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 12:03:20