我正在构建一个通过AWS Cognito进行身份验证的Web应用程序,并使用现有的API网关配置与Lambda函数进行通信。
在我的应用程序中,当我进行身份验证时,我从Cognito获取以下数据:
我已经获得对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但不确定这是否对我有帮助 - 目前我觉得手工制作标题可能更容易?
答案 0 :(得分:2)
我相信您尝试做的是授权您已经过身份验证的用户。可以找到授权和身份验证之间差异的说明here
如果是授权,您可以创建Custom Authorizer。但是,由于您使用的是Amazon Cognito,请务必创建Cognito User Pool Authorizer
基本上,您将使用Cognito中的IdToken
并将其作为Authorization
标头传递给您的授权程序功能。