我已经使用 Cognito 用户池授权者设置了 API GW。 token 源是method.request.header.Authorization。 我从浏览器测试应用程序中获取 ID token ,将其插入 AWS 控制台中的授权者测试中,然后得到 HTTP 200。一切都很好。
现在,当我使用 Postman 访问相同的资源时
授权:(ID token )和
内容类型:application/json header ,
我收到带有以下 header 的 HTTP 401 响应:
内容长度→26
内容类型 →application/json
日期→2017 年 9 月 27 日星期三 02:30:39 GMT
状态→401
通过 →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 →来自云端的错误
我关注了这些steps (调用与用户池集成的 API)但我无法真正弄清楚我做错了什么......
最佳答案
好的,经过几个小时的谷歌搜索和测试,我发现在我设置的 APIG 授权方中,指定的 token 源是:
method.request.header.Authorization
而不是简单地
授权
奇怪的是,如果授权者测试真正模仿了相应的 REST 调用,它也应该失败。
关于aws-api-gateway - 控制台中的 Cognito Authorizer Test 有效,但 Postman 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46453037/