如何允许API网关代理与POST请求的Cognito Authorizer集成?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何允许API网关代理与POST请求的Cognito Authorizer集成?相关的知识,希望对你有一定的参考价值。
我正在尝试使用Cognito用户池授权对Lambda代理集成资源的API网关请求。
从客户端,没有授权者,所有请求都可以正常工作。当我添加授权者时,GET请求在获得授权时可以工作,但是POST / PUT / DELETE请求给了我这个错误:
401从起始点[客户端]到[端点]的XMLHttpRequest访问已被CORS策略阻止:在所请求的资源上不存在'Access-Control-Allow-Origin'标头
我为资源选择了'Enable CORS'
,但仍然无法使用。
js请求:
const jwt = this.$store.state.user
.getSignInUserSession()
.getIdToken()
.getJwtToken();
const config = {
headers: {
authorization: jwt,
},
id: generatedID,
name: 'generatedName',
};
axios.post(endpoint, config)
.then((val) => { this.info = val; })
.catch(err => console.log(err));
身份验证配置:authorizer config
如果我将请求类型从POST
更改为GET
,它将起作用。如果我从API网关中删除了授权者,它将起作用。 POST / PUT / etc我缺少什么?
我想获得200/201响应并请求通过API网关授权。
答案
如本文档所述,可以通过向API网关添加预检'OPTIONS'来解决此问题。
添加预检条目后,api网关应类似于屏幕截图。
https://enable-cors.org/server_awsapigateway.html
以上是关于如何允许API网关代理与POST请求的Cognito Authorizer集成?的主要内容,如果未能解决你的问题,请参考以下文章