google flex endpoint 403禁止使用

时间:2017-01-11 02:18:51

标签: google-cloud-endpoints google-app-engine-python google-flexible

我开发了一些google flex端点。他们在本地工作,但是当我部署应用程序(gcloud app deploy)时,我获得了禁止的http状态403。我正在使用ajax来调用端点:

var echoEndpoint = function() {
  $.ajax(userBaseUrl+'/echo', {
    headers: {'Authorization': 'Bearer ' + userIdToken},
    type: 'GET',
    data: "key=my special key"
  })
}

我使用apikey保护端点并在标头中传递userIdToken。上面的代码生成403禁止。但是,如果我删除标题,它的工作原理。虽然没有用户令牌。这是不会产生403

的代码
  var echoEndpoint = function() {
  $.ajax(userBaseUrl+'/echo', {
    type: 'GET',
    data: "key=my special key"
  })
}

这是我的openapi.yaml的路径部分 .....

     paths:
      "/echo":
        get:
          description: "Echo a test message."
          operationId: "echo"
          produces:
          - "application/json"
          responses:
            200:
              description: "Echo"
              schema:
                $ref: "#/definitions/echoMessage"
          x-security:
          - firebase:
              audiences:
              - "my project-id"
....
definitions:
  echoMessage:
    properties:
      message:
        type: "string"

我是否需要在openapi.yaml中指定我在请求中发送标头?怎么这样怎么样?我试图将它放在定义部分,但在尝试部署时会产生INVALID_ARGUMENT错误。

1 个答案:

答案 0 :(得分:0)

你定义了" firebase" in" securityDefinitions"如本例所示(https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/appengine/flexible/endpoints/openapi.yaml#L108"?