如何在 API 网关上的 cognito 授权方保护的 lambda 函数中获取 AWS Cognito 用户数据

Posted

技术标签:

【中文标题】如何在 API 网关上的 cognito 授权方保护的 lambda 函数中获取 AWS Cognito 用户数据【英文标题】:How to get AWS Cognito user data inside a lambda function protected by a cognito authorizer on API gateway 【发布时间】:2018-09-13 08:03:06 【问题描述】:

我正在使用无服务器。我已经创建了我的用户池并使用 AWS APi 网关上的 Cognito 用户池授权器保护了我的 lambda 函数。

现在,在我的 lambda 函数中,我想让我的用户 ID 和其他数据用作 dynamodb 存储的键,如下所示:

module.exports.helloprotected = (event, context, callback) => 

      // event.request.userAttributes; -> does not work

;

【问题讨论】:

【参考方案1】:

设法得到它:

event.requestContext

我发现可能适用于其他设置/场合的其他答案:

event.request.userAttributes
context.authorizer

注意:为了能够获取用户详细信息,您应该在您的 API 网关(在您的集成请求中)或在创建您的方法时启用 使用 Lambda 代理集成 .

【讨论】:

以上是关于如何在 API 网关上的 cognito 授权方保护的 lambda 函数中获取 AWS Cognito 用户数据的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Terraform 在 API 网关上启用 HEAD 方法

如何解决“在集成或 API 网关上配置的 IAM 角色没有调用集成的权限

具有 Cognito 用户池授权方的 AWS SAM API

如何允许API网关代理与POST请求的Cognito Authorizer集成?

如何在没有授权人的情况下通过 API Gateway 使 AWS Cognito 用户数据可供 Lambda 使用?

Cognito 授权人组