获取错误:AWS API请求后缺少身份验证令牌

时间:2016-05-09 12:41:20

标签: amazon-web-services authentication aws-lambda aws-api-gateway

我试图通过AWS API Gateway调用Lambda函数。

我在尝试IAM身份验证,API密钥身份验证以及无身份验证时遇到此错误。 enter image description here

{"message":"Missing Authentication Token"}

由于不存在端点,有些人遇到了同样的问题。但是,我直接从Lambda Function AWS控制台获取了我的端点。 enter image description here

我一直在尝试在浏览器中打开URL,也在Postman上打开URL(使用和不使用标头身份验证:x-​​api-key:**************** *)。 enter image description here

两人都回答了上述错误。

5 个答案:

答案 0 :(得分:11)

还有一步:在Postman中,您需要将授权设置为 AWS Signature ,然后输入 AccessKey 来自您的IAM用户的SecretKey

邮差截图 Postman screenshot

答案 1 :(得分:5)

我会在这里为任何观众撰写详细的常见问题解答。由最常见的原因排序。

  1. 资源路径和/或HTTP方法不正确。
    • 如果您拥有正确的资源路径和错误的HTTP方法,您仍会看到此消息
    • 您可以使用Postman或其他客户端对同一资源/方法的请求进行签名,如果您获得404,则然后您肯定有错误的资源/方法
  2. 受保护的资源/方法上缺少签名。默认情况下,您的API将处于打开状态。如果您已明确要求AWS Auth,则错误表明该请求未签名。
  3. 如果您正在使用Lambda控制台创建' API端点'它可能是Lambda端的问题,也可能是新API传播的延迟。在这种情况下,请转到API网关控制台,您应该看到Lambda为您创建的API。 确保已部署,并且您拥有正确的阶段,资源路径和方法

答案 2 :(得分:0)

只是想提一下,如果将API网关的身份验证设置为NONE,请确保在没有身份验证设置生效之前,首先需要Deploy API

答案 3 :(得分:-1)

您必须从API的操作启用CORS。这将创建一个新的OPTIONS方法。 CORS用于跨域请求

答案 4 :(得分:-2)

您需要将Api Key Required设置为true。点击此处:http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-api-keys.html