gpt4 book ai didi

amazon-web-services - AWS Lambda、API 网关和 Cognito : How to get the identity object in lambda function?

转载 作者:行者123 更新时间:2023-12-04 02:06:55 25 4
gpt4 key购买 nike

我使用以下 AWS 技术构建无服务器后端:

  • AWS api_gateway
  • AWS 认知
  • AWS lambda

在 api_gateway 中,我创建了一个 Cognito 用户池授权方,我使用该授权方处理对后端的所有请求。

一切正常:当用户使用无效的 JWT token 发出请求时,服务器会做出相应的响应。有效的 JWT token 执行请求的 Lambda 函数。

问题:我无法检索identity 信息,例如accessKeyaccountIdcognitoIdentityId 等等。当我通过 lambda 函数中的 context 对象访问它们时,所有这些变量都是 null

问题我需要做什么才能获得identity变量?

最佳答案

Lambda 函数中的上下文对象包含从 Lambda 的角度来看的上下文。 Lambda 函数以其执行角色的身份运行,因此其上下文不会包含来自 Cognito 用户池的身份属性。

API Gateway 通过 API Gateway 中的 $context.authorizer.claims 变量公开 Cognito 用户池身份信息。要从您的 Lambda 函数中访问此信息,您必须修改 API Gateway 中的主体映射模板,以通过请求主体将所需数据从 $context.authorizer.claims 传递到您的 Lambda 函数。您是 Lambda 函数,然后像任何其他字段一样从请求正文中读取此信息。

有关这方面的文档可以找到 here .向下滚动到标题为“在方法上启用用户池授权方”的部分,然后查看第 7 步:“如果需要,选择集成请求以添加 $context.authorizer.claims ...”

关于amazon-web-services - AWS Lambda、API 网关和 Cognito : How to get the identity object in lambda function?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42626327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com