evd*_*vdh 10 amazon-web-services amazon-cognito aws-lambda aws-api-gateway
我正在使用Lambda后端开发AWS API Gateway实现.我使用API Gateway与Cognito Userpools(相当新的)集成,而不是使用Lambda构建自定义授权程序(这是在集成之前的推荐方式).
我创建了一个概念验证(javascript),用Cognito对用户进行身份验证,然后使用这些凭据调用API Gateway.因此,基本上,对API网关的结束调用是使用我在Authorization标头中从Cognito(result.idToken.jwtToken)收到的JWT令牌.这一切都有效,我可以验证只有使用此令牌才能访问API.
一切正常,但现在我想在我的Lambda中访问Cognito身份; 例如身份ID或姓名或电子邮件.我已经阅读了如何映射所有参数,但实际上我只是在集成请求中使用标准的"Method Request Passthrough"模板.我记录了lambda中的所有参数,所有'cognito'参数都是空的.
我查看了许多类似的问题,并且他们都建议在集成请求中启用"使用调用者凭据调用"复选框.这很有道理.
但是,只有在使用AWS_IAM作为授权时才能启用此复选框,如果您选择了您的cognito UserPool ,则不能启用此复选框.所以它是不可能选择它并且实际上是禁用的.
在这种情况下有人知道该怎么做吗?这仍然在进行中,还是有理由不能启用此功能并在Lambda中获取认证凭据?
非常感谢.
如果您需要在后端记录用户信息,您可以使用$context.authorizer.claims.sub和$context.authorizer.claims.email获取Cognito 用户池的子目录和电子邮件。
以下是有关在 API Gateway 中使用 Amazon Cognito 您的用户池的文档
| 归档时间: |
|
| 查看次数: |
1525 次 |
| 最近记录: |