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

Google Cloud Endpoints:Bearer认证头无法访问API,Query参数可行

排查 Google Cloud Endpoints Bearer 头认证失败的常见方向

我之前调试Endpoints认证时也踩过类似的坑,结合你的情况(query参数正常但Bearer头失效),给你整理几个核心排查点:

  • 检查请求头名称是否正确
    你提到用的是Authentication:Bearer,但官方要求的是Authorization:Bearer!这是最容易犯的拼写错误,很多人会把两个词搞混,确认一下你的请求头是不是写错了名称——把Authentication改成Authorization再试一次,大概率能解决问题。

  • 确认Bearer令牌的格式规范
    令牌和Bearer之间必须有一个空格,也就是格式必须是:

    Authorization: Bearer <你的令牌内容>
    

    如果写成Authorization:Bearer<令牌>(没有空格),Endpoints会识别为无效的认证头。

  • 检查OpenAPI配置中的认证规则
    确认你的Endpoints配置文件(OpenAPI/ gRPC配置)里,是否正确启用了Bearer认证:

    • 对于OpenAPI,要确保securitySchemes里定义了Bearer类型的认证,并且在security部分引用了该规则;
    • 如果是gRPC,要检查API配置里的认证策略是否正确关联了对应的OAuth2 issuer。
  • 排查中间件/代理对请求头的干扰
    如果你的请求经过了网关、代理或者自定义中间件,有些服务会默认过滤或修改Authorization头(比如出于安全策略),导致Endpoints无法接收到正确的头信息。可以直接绕过代理,用curl直接调用Endpoints测试,看看是否正常。

  • 查看Cloud Logging的详细错误日志
    去Cloud Logging里筛选Endpoints的请求日志,找到认证失败的请求条目,里面会有具体的错误原因(比如invalid_token、missing_authorization_header等),根据错误信息针对性修复。

  • 验证令牌的受众(Audience)和权限范围(Scope)
    虽然query参数能正常访问,但还是要确认令牌的aud字段是否匹配你的Endpoints服务名称,以及令牌是否包含了API要求的权限范围。可以用gcloud auth print-identity-token生成令牌后,用JWT解析工具查看字段是否正确。

内容的提问来源于stack exchange,提问作者Mr. Blockchain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:35:17