如何使用AWS cognito响应来验证API请求

时间:2017-06-16 01:26:58

标签: amazon-web-services aws-api-gateway amazon-cognito

我正在构建一个通过AWS Cognito进行身份验证的Web应用程序,并使用现有的API网关配置与Lambda函数进行通信。

在我的应用程序中,当我进行身份验证时,我从Cognito获取以下数据:

enter image description here

我已经获得对Amazon API网关进行身份验证的示例标头如下所示(为了混淆而添加了x):

Content-type: application/json
Host: <API Gateway host>
X-Amz-DateL <Date>
Authorization:
AWS4-HMAC-SHA256 Credential=XXXXXXXXXXXX/20170222/ap-southeast-2/execute-api/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=f25e2a18d8c81fe9e7XXXXXXXXXXXXXXXXb7d586d24a3e39
Access_key:XXXXXXXX (this is a large string)

我的问题是我需要从Cognito结果中获取哪些信息来制作我需要连接到api的标题?

我正在使用Vue.js作为Javascript前端,我看过AWS SDK for Javascript但不确定这是否对我有帮助 - 目前我觉得手工制作标题可能更容易?

1 个答案:

答案 0 :(得分:2)

我相信您尝试做的是授权您已经过身份验证的用户。可以找到授权和身份验证之间差异的说明here

如果是授权,您可以创建Custom Authorizer。但是,由于您使用的是Amazon Cognito,请务必创建Cognito User Pool Authorizer

基本上,您将使用Cognito中的IdToken并将其作为Authorization标头传递给您的授权程序功能。

另见Integrating Amazon Cognito User Pools with API Gateway