我在AWS上创建了一个RESTful API,我正在尝试测试POST方法。我向api gatemway控制台的测试界面中的请求主体发出了一个示例请求,得到了这个响应:
{
"Error": "Authorization not configured",
"Reference": "e6b7ec86-97fe-11e7-b480-ebefe7f11420"
}
我最初将此设置为具有对相应表的读/写访问权限的Cognito用户池,但是我收到此错误消息。我尝试删除方法中的授权只是为了测试这个,但我又收到了这个错误。
据我所知,我已全面设立授权。
trusted entities: AWS service: lambda
)和AWSLambdaBasicExecutionRole
我觉得我必须遗漏一些明显的东西,但是当我在这里逐步完成时,一切似乎都是有序的。非常感谢任何帮助,如果我能提供任何其他信息,请告诉我。
答案 0 :(得分:5)
我发现这个问题与AWS forums OP相关联,我在浏览Wild Rydes教程时遇到了同样的问题。
我能够通过以下方式解决这个问题:
答案 1 :(得分:0)
嗯,在浏览WildRydes教程和Lambda测试后,我发现了它。我需要将Authorization
标头设置为当前用户的JWT标记。我用以下功能做到了这一点:
getCurrentAuthToken: function (userPool) {
return new Promise(function fetchCurrentAuthToken (resolve, reject)
let cognitoUser = userPool.getCurrentUser()
if (cognitoUser) {
cognitoUser
.getSession(function sessionCallback (err, session) {
if (err) {
reject(err)
} else if (!session.isValid()) {
resolve(null)
} else {
resolve(session.getIdToken().getJwtToken())
}
})
} else {
resolve(null)
}
})
}
并使用promise的返回值在我的请求中设置Authorization
标头。
答案 2 :(得分:0)
如果其他人遇到此问题,我只需要清除浏览器中的缓存数据即可使用。
答案 3 :(得分:0)
我已经看完了本教程的德语版本,他们也翻译了令牌源的值,这是错误的。
我只需要将API网关中的令牌源更改为英语短语Authorization
,然后再次部署该API即可。
答案 4 :(得分:0)
我遇到了问题,直到我在 OPTIONS 方法请求中set the Auth to none。
选择左侧的选项,然后单击方法请求。确保Authorization is set to NONE。请记住部署更改。