0

私はいくつかの 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 エラーが発生します。

4

1 に答える 1

0

この例に示すように、「securityDefinitions」で「firebase」を定義しましたか ( https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/appengine/flexible/endpoints/openapi.yaml#L108 "?

于 2017-01-13T01:11:12.310 に答える