如何为 AWS API 网关自定义授权方配置 CORS?
How to configure CORS for an AWS API Gateway Custom Authorizer?
我有一个 API 由 API 网关和使用自定义授权方的 Lambda 提供支持。
对于成功的请求,它会通过授权方,然后我的 Lambda 可以 return 使用 CORS headers 进行正确的响应,没有任何问题。
但是,对于不成功的授权(例如无效令牌),我没有得到 CORS headers,这会导致我的客户端应用程序(使用 fetch
API)抛出。
如何为使用自定义授权方的 API 设置 CORS?
基于this answer and this AWS documentation page,我找到了解决方法。
解决方法是在我的serverless.yml
中添加如下内容:
resources:
Resources:
AuthorizerApiGatewayResponse:
Type: "AWS::ApiGateway::GatewayResponse"
Properties:
ResponseParameters:
"gatewayresponse.header.Access-Control-Allow-Origin": "'*'"
ResponseType: UNAUTHORIZED
RestApiId: {"Ref" : "ApiGatewayRestApi"}
StatusCode: "401"
我有一个 API 由 API 网关和使用自定义授权方的 Lambda 提供支持。
对于成功的请求,它会通过授权方,然后我的 Lambda 可以 return 使用 CORS headers 进行正确的响应,没有任何问题。
但是,对于不成功的授权(例如无效令牌),我没有得到 CORS headers,这会导致我的客户端应用程序(使用 fetch
API)抛出。
如何为使用自定义授权方的 API 设置 CORS?
基于this answer and this AWS documentation page,我找到了解决方法。
解决方法是在我的serverless.yml
中添加如下内容:
resources:
Resources:
AuthorizerApiGatewayResponse:
Type: "AWS::ApiGateway::GatewayResponse"
Properties:
ResponseParameters:
"gatewayresponse.header.Access-Control-Allow-Origin": "'*'"
ResponseType: UNAUTHORIZED
RestApiId: {"Ref" : "ApiGatewayRestApi"}
StatusCode: "401"