如何为 AWS API Gateway 自定义授权方配置 CORS?
Posted
技术标签:
【中文标题】如何为 AWS API Gateway 自定义授权方配置 CORS?【英文标题】:How to configure CORS for an AWS API Gateway Custom Authorizer? 【发布时间】:2018-03-08 11:16:10 【问题描述】:我有一个由 API Gateway 和 Lambda 提供支持的 API,它使用自定义授权方。
对于成功的请求,它会通过授权方,然后我的 Lambda 可以毫无问题地返回带有 CORS 标头的正确响应。
但是,对于不成功的授权(例如无效令牌),我没有得到 CORS 标头,这会导致我的客户端应用程序(使用 fetch
API)抛出。
如何为使用自定义授权方的 API 设置 CORS?
【问题讨论】:
【参考方案1】:根据this answer 和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"
【讨论】:
如果我也使用 withCredentials(不允许 *),但有多个来源,您知道处理此问题的适当方法是什么吗? 其实通过Serverless博客找到了更好的解决方案serverless.com/blog/cors-api-gateway-survival-guide/…以上是关于如何为 AWS API Gateway 自定义授权方配置 CORS?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 AWS API Gateway Custom Authorizer 提供 Lambda 权限?