首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CORS错误:通过API网关为具有授权的自定义域名在AWS Lambda中设置cookies

CORS错误:通过API网关为具有授权的自定义域名在AWS Lambda中设置cookies
EN

Stack Overflow用户
提问于 2019-09-12 22:51:50
回答 1查看 422关注 0票数 0

我正在尝试编写一个AWS Lambda函数,该函数设置Cloudfront签名的Cookie来访问私有的Cloudfront (S3)端点(使用this tutorial作为指南)。

因为我的应用程序使用AWS Cognito进行授权,而不是编写自定义授权函数,所以我想我只需要在API Gateway中使用Cognito授权器并发送JWT令牌。

我已经能够通过浏览器中的功能成功地设置cookie,但在设置访问cookie信息所需的正确域时遇到问题。cookie正在为API Gateway的地址设置域:xxxx.execute-api.us-east-1.amazonaws.com

因此,我认为我应该在API Gateway端点(它通过Cloudfront端点路由调用)上使用自定义域名。我遇到的问题是API Gateway的Cognito Authorization头需要一个OPTIONS调用,这给了我一个错误:

代码语言:javascript
运行
复制
Access to fetch at 'xxxxx' from origin 'xxxxx' has been blocked 
by CORS policy: Response to preflight request doesn't pass access 
control check: Redirect is not allowed for a preflight request.

对解决这个问题的最好方法有什么建议吗?有没有办法在不使用API自定义域的情况下设置正确的域?或者,我是否应该将cookie信息作为JSON发送并在浏览器中进行设置?

EN

回答 1

Stack Overflow用户

发布于 2019-09-13 22:36:33

事实证明,这是API Gateway域名端点上的Cloudfront Edge发行版的问题。AWS正在将调用者重定向到最近的端点,该端点导致OPTIONS调用出现问题。通过将自定义域直接切换到一个特定的区域端点,我能够解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57909360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档