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

如何解码调用GCP Pub/Sub API的OAuth Bearer Token?

解码GCP OAuth Bearer Token的方法(当tokeninfo接口返回invalid_token时)

直接解码JWT结构

GCP的OAuth Bearer Token基本都是JWT格式,由.分隔的Header、Payload、Signature三部分组成。核心权限、过期时间等信息都在Payload段,无需依赖tokeninfo接口就能解码:

  • 拆分Token:将获取到的Token按.分割,取前两段(Header和Payload)
  • 用命令行工具解码(适用于macOS/Linux):
    # 解码Payload段(关键信息段)
    echo "$TOKEN" | cut -d. -f2 | tr '_-' '/+' | base64 --decode
    
    注:若系统base64工具无法自动处理URL安全字符,用tr替换特殊字符后再解码;部分系统需加-d参数去除多余换行。
  • 用Python快速解码(跨平台):
    python3 -c "import base64, json; payload = '$TOKEN'.split('.')[1]; print(json.loads(base64.urlsafe_b64decode(payload + '='*(-len(payload)%4))))"
    

排查invalid_token错误的原因

返回该错误不一定是Token无效,常见场景包括:

  • Token是ID Token而非Access Token:日志中捕获的Token可能是ID Token,此时需修改tokeninfo接口的参数:
    curl -i "https://oauth2.googleapis.com/tokeninfo?id_token=$TOKEN"
    
  • Token已过期:解码Payload后查看exp字段(Unix时间戳),对比当前时间即可判断是否过期
  • Token已被吊销:若Token对应的服务账号密钥已删除或吊销,也会触发此错误

用GCP CLI验证Token

如果已安装并配置gcloud CLI,可直接用内置命令查看Token详情:

gcloud auth token-info "$TOKEN"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:52:13