aws-api-gateway - 控制台中的 Cognito Authorizer Test 有效,但 Postman 无效

标签 aws-api-gateway amazon-cognito

我已经使用 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/

相关文章:

amazon-web-services - --rest-api-id和--resource-id是什么,我在哪里找到它们?

amazon-web-services - 如何设置专门监控 AWS API Gateway API 的限制(429 - 请求过多)的警报?

amazon-web-services - AWS API Gateway应阻止使用TLS v1

aws-lambda - 无法识别的 Lambda 输出认知

aws-lambda - 如何使用无服务器框架从节点 JS AWS lambda 后端将二进制内容传递到 API Gateway?

aws-api-gateway - CloudFormation 中的 AWS API Gateway 方法响应

python - 如何使用 AWS Cognito - 身份池检索正确的凭证以在 boto3 客户端上访问 AWS SecretsManger

amazon-cognito - 将 elasticbeanstalk 与 cognito 用户池集成

amazon-web-services - Amazon Cognito 删除账户

reactjs - 在成功回调中调用yield put()