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

如何从GCP获取Refresh Token?已获取OAuth Client ID与Client Secret但未找到对应刷新令牌

如何用已有的GCP OAuth Client ID和Client Secret获取Refresh Token

Refresh Token是OAuth授权流程中用户同意授权后才会生成的动态凭证,不会预先展示在GCP控制台的凭证列表页面,必须通过完整的授权流程获取,操作步骤如下:

  • 第一步:确认OAuth客户端配置正确
    首先确认你创建的OAuth客户端类型和你的使用场景匹配:桌面/命令行类应用选择「桌面应用」类型,Web服务类应用选择「Web应用」类型,*必须提前在客户端的「授权重定向URI」配置项中填写后续授权流程要用到的回调地址,桌面应用可以直接使用http://localhost作为回调地址。

  • 第二步:构造授权请求URL
    按以下格式拼接授权请求URL,替换为你自己的参数:

    https://accounts.google.com/o/oauth2/v2/auth?client_id=你的Client ID&redirect_uri=你配置的重定向URI&response_type=code&scope=你需要的API权限范围&access_type=offline&prompt=consent
    

    *这里的access_type=offline是GCP返回Refresh Token的必填参数,prompt=consent会强制触发授权确认页,保证请求可以正常拿到Refresh Token,避免首次授权后后续请求不返回Refresh Token的问题。
    权限范围根据你的使用场景填写,比如需要全量云平台权限可以填https://www.googleapis.com/auth/cloud-platform。

  • 第三步:获取授权码
    将构造好的URL粘贴到浏览器地址栏打开,登录需要授权的GCP账号,同意授权申请后页面会跳转到你配置的重定向URI,从跳转后的地址栏参数中复制code=后面的内容,即为授权码,授权码有效期仅为数分钟,需要尽快使用。

  • 第四步:用授权码交换Refresh Token
    向https://oauth2.googleapis.com/token发送POST请求,请求参数如下:

    • code:上一步获取的授权码
    • client_id:你的OAuth Client ID
    • client_secret:你的OAuth Client Secret
    • redirect_uri:和第二步授权请求中完全一致的重定向URI
    • grant_type:固定值authorization_code
      你可以直接使用curl命令发起请求,示例如下:
    curl -X POST https://oauth2.googleapis.com/token \
    -d client_id="替换为你的Client ID" \
    -d client_secret="替换为你的Client Secret" \
    -d code="替换为你拿到的授权码" \
    -d grant_type=authorization_code \
    -d redirect_uri="替换为你配置的重定向URI"
    

    请求成功后返回的JSON结构中就包含refresh_token字段,即为你需要的Refresh Token。

注意事项:

  • 同一个GCP账号对同一个OAuth客户端最多同时存在50个有效的Refresh Token,超出限额后最早生成的Refresh Token会自动失效
  • 如果你使用的是Google Workspace企业账号,需要管理员提前放行对应OAuth客户端的访问权限,否则授权流程会被拦截
  • Refresh Token默认不会自动过期,以下场景会导致失效:你主动撤销授权、账号密码修改、连续6个月未使用该Refresh Token、或者对应应用被Google标记为未验证的敏感应用被限制权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:36:04