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

如何通过编程更新Google OAuth客户端的redirect_uris以支持多子域名?

如何编程更新OAuth 2.0客户端的redirect_uris列表

当然可以通过编程方式更新OAuth 2.0客户端的redirect_uris列表,无需局限于GUI操作。你可以使用Google Cloud Credentials API实现这个需求,具体思路和操作如下:

  • 前置准备:

    • 在云控制台的API库中搜索并启用Credentials API
    • 创建并下载服务账号密钥,确保该账号拥有OAuth Config Editor或Editor权限,具备修改客户端凭证的权限
  • 核心操作流程:

    1. 调用projects.clientSecrets.get接口获取当前客户端的完整配置,提取现有redirect_uris列表
    2. 将需要新增的子域名跳转地址(如https://a.example.com/callback、https://b.example.com/callback)添加到列表中
    3. 调用projects.clientSecrets.patch接口提交更新后的配置(使用patch而非update可避免覆盖其他未修改的配置项)
  • Python示例代码:

    from google.oauth2 import service_account
    from googleapiclient.discovery import build
    
    # 加载服务账号密钥文件
    credentials = service_account.Credentials.from_service_account_file(
        'service-account-key.json',
        scopes=['https://www.googleapis.com/auth/cloud-platform']
    )
    
    # 构建Credentials API客户端
    service = build('credentials', 'v1', credentials=credentials)
    
    # 客户端资源名称,格式为"projects/{项目ID}/clientSecrets/{客户端ID}"
    client_secret_name = 'projects/your-project-id/clientSecrets/your-client-id'
    
    # 获取当前客户端配置
    current_config = service.projects().clientSecrets().get(name=client_secret_name).execute()
    
    # 新增需要支持的子域名跳转地址
    new_redirects = [
        'https://a.example.com/callback',
        'https://b.example.com/callback'
    ]
    current_config['web']['redirectUris'].extend(new_redirects)
    
    # 提交更新
    updated_config = service.projects().clientSecrets().patch(
        name=client_secret_name,
        body=current_config
    ).execute()
    
    print("跳转地址更新完成:", updated_config['web']['redirectUris'])
    
  • 注意事项:

    • 跳转地址必须符合规范:生产环境需使用HTTPS,本地测试可使用http://localhost开头的地址
    • 若需批量添加大量子域名跳转地址,可通过脚本生成地址列表后批量注入更新
    • 操作前建议备份当前客户端配置,避免误操作导致配置丢失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:55:13