我已经使用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)但我无法弄清楚我做错了什么......
答案 0 :(得分:2)
好的,经过数小时的谷歌搜索和测试,我发现在我设置的APIG授权器中,指定的令牌源是:
method.request.header.Authorization
而不是简单
授权
奇怪的是授权者测试也应该失败,如果它真的模仿了相应的REST调用。
答案 1 :(得分:0)
根据我的经验,@ Breiz是对的。 我使用了授权而不是 method.request.header.Authorization 。 此外,在Postman中,我在令牌之前删除了单词 Bearer 以及空格。它有效。