【问题标题】:Getting user from Lambda called by API Gateway using Cognito credentials使用 Cognito 凭证从 API Gateway 调用的 Lambda 获取用户
【发布时间】:2017-02-04 01:25:26
【问题描述】:

使用 Cognito 凭据从浏览器调用我的 API 端点不会向发出请求的用户提供 lambda 函数。

我正在为端点使用 AWS_IAM 身份验证

这是请求在我的 lambda 中的样子:

module.exports.addItem = (event, context, done) => { console.log(event.identity); /** accountId: "", apiKey: "", caller: "", cognitoAuthenticationProvider: "", cognitoAuthenticationType: "", cognitoIdentityId: "", cognitoIdentityPoolId: "", sourceIp: "213.229.49.108", user: "", userAgent: "Mozilla/5.0 (X11; Linux x86_6....", userArn: "" */ };

我想为用户执行一些 dynamodb 操作。如何获取用户?

【问题讨论】:

    标签: amazon-dynamodb amazon-cognito aws-api-gateway


    【解决方案1】:

    您有 2 个选项可将 Cognito 身份 ID 获取到您的 Lambda 函数:

    1. 在控制台中的 API 方法上选中“使用调用者凭据”。这将告诉 API Gateway 使用 Cognito 凭证来调用 Lambda,这意味着您的 Lambda 函数的 context.identity 将包含该信息。 注意您的 Cognito 角色需要调用您的 Lambda 函数的权限才能正常工作。

    2. 使用mapping template 将值映射到您的事件负载中。

    您似乎正在尝试执行 #2,但您尚未包含映射模板,请确保其中包含所需的值。此外,请确保您已部署启用 IAM 身份验证的更改并且您正确签署了请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-06
      • 2019-05-11
      • 2018-08-13
      • 2016-05-10
      • 2021-04-09
      • 2017-01-14
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多