控制台中的Cognito Authorizer测试工作,但Postman没有

时间:2017-09-27 16:36:23

标签: aws-api-gateway amazon-cognito

我已经使用Cognito用户池授权程序设置了API GW。 令牌源是method.request.header.Authorization。 我从浏览器测试应用程序中获取了一个ID令牌,我在AWS控制台中插入了授权者测试,我得到了HTTP 200.一切都很好。

现在,当我使用Postman使用

访问相同的资源时

授权 :( ID令牌)和

内容类型:application / json标头,

我收到带有以下标题的HTTP 401响应:

content-length→26

content-type→application / json

日期→2017年9月27日星期三02:30:39 GMT

状态→401

via→1.1 6eadd6c6c5a53c34c6fce458c34cd790.cloudfront.net(CloudFront)

x-amz-cf-id→0SE2SaWGwFLJvml_V-4ai3aBimAX8KKyjfWrrmHLugt9PaQVHRsI4Q ==

x-amzn-errortype→UnauthorizedException

x-amzn-requestid→d9cfe16c-a32b-11e7-b1b9-1f4b319597f5

x-cache→来自cloudfront的错误

我按照这些steps(调用与用户池集成的API)但我无法弄清楚我做错了什么......

2 个答案:

答案 0 :(得分:2)

好的,经过数小时的谷歌搜索和测试,我发现在我设置的APIG授权器中,指定的令牌源是:

method.request.header.Authorization

而不是简单

授权

奇怪的是授权者测试也应该失败,如果它真的模仿了相应的REST调用。

答案 1 :(得分:0)

根据我的经验,@ Breiz是对的。 我使用了授权而不是 method.request.header.Authorization 。 此外,在Postman中,我在令牌之前删除了单词 Bearer 以及空格。它有效。