【发布时间】:2019-10-30 03:26:37
【问题描述】:
我正在使用 Google Cloud Endpoints 和 Google Cloud Functions 设置一个宠物项目,并使用 Google ID 令牌身份验证。我已经按照 this 和 this 指南进行设置,但是 X-Endpoint-API-UserInfo 标头未传递给云函数。
我在this OpenAPI yaml 中设置了一个 POST 端点。它部署到 Cloud Endpoints,也是一个可扩展的服务代理。当我使用 gcloud auth application-default print-access-token 生成的令牌从 Postman 调用它时,我发现身份验证确实有效,但函数中只存在以下标头:host, user-agent, transfer-encoding, accept, accept-encoding, authorization, cache-control, forwarded, function-execution-id, postman-token, x-appengine-city, x-appengine-citylatlong, x-appengine-country, x-appengine-default-version-hostname, x-appengine-https, x-appengine-region, x-appengine-request-log-id, x-appengine-user-ip, x-cloud-trace-context, x-forwarded-for, x-forwarded-proto, x-real-ip, connection
你能帮我为什么我没有从函数中的 ESP 获取用户信息吗?
【问题讨论】:
-
嘿@esgott,我已经尝试过 Wayne Zhang 的解决方案,它对我有用。你能确认它是否适合你,这就是你真正想做的吗?
-
有意思,我刚刚又试了一遍,认证不了了。我收到
401 Unauthorized和消息JWT validation failed: Bad JWT format: Invalid JSON in header。我想知道我生成访问令牌的方式是否良好。 -
如果出现错误,请确保您的 JWT 包含有效的 JSON。 Here 你可以找到一个有效的解码 JWT 令牌的例子。
标签: google-cloud-functions google-cloud-endpoints openapi