如何为AWS API Gateway自定义授权者配置CORS?

das*_*mug 4 amazon-web-services aws-lambda aws-api-gateway serverless-framework

我有一个由API网关和Lambda支持的API,它使用自定义授权者。

对于成功的请求,它会通过授权者,然后我的Lambda可以毫无问题地返回带有CORS标头的正确响应。

但是,对于不成功的授权(例如无效的令牌),我没有CORS标头,这会导致我的客户端应用程序(使用fetchAPI)抛出。

如何为使用自定义授权者的API设置CORS?

das*_*mug 5

根据此答案此AWS文档页面,我能够弄清楚如何解决它。

解决方案是在my中添加以下内容serverless.yml

resources:
  Resources:
    AuthorizerApiGatewayResponse:
      Type: "AWS::ApiGateway::GatewayResponse"
      Properties:
        ResponseParameters:
          "gatewayresponse.header.Access-Control-Allow-Origin": "'*'"
        ResponseType: UNAUTHORIZED
        RestApiId: {"Ref" : "ApiGatewayRestApi"}
        StatusCode: "401"
Run Code Online (Sandbox Code Playgroud)

  • 如果我也使用 withCredentials (不允许 *),但有多个来源,你知道处理这个问题的适当方法是什么吗? (2认同)