【问题标题】:How to pass cognito user information to lambda?如何将 cognito 用户信息传递给 lambda?
【发布时间】:2016-01-01 22:04:31
【问题描述】:

我正在开发基于 API Gateway 和 Lambda 的应用程序。我将 POST /subscribe 配置为“AWS_IAM”。所以现在它无法直接访问,但我可以通过 Cognito 身份验证访问 API。

现在的问题是我的 Lambda 不知道谁是 API 调用者。怎么知道?

我有 2 个用户:“Bob”和“John”。我的 Lambda 需要知道调用者是 Bob 或 John。

谢谢,

【问题讨论】:

    标签: amazon-web-services amazon-cognito aws-api-gateway aws-lambda


    【解决方案1】:

    您可以从 context 参数 (context.identity) 的 identity 属性中获取 Cognito 身份 ID,如 context Object Properties section of the Lambda Programming Model help topic 中所述。获得 Cognito 唯一标识符后,您可以使用 Cognito Sync 的 API 和您的开发人员凭据来查找存储在 Cognito 中的有关此用户的信息,或者您可以使用该标识符将 ID 映射到存储在其他位置的用户信息。

    确保为 AWS_IAM 配置了 API Gateway(如您所述),并确保在方法的“集成请求”设置下选中“使用调用方凭据调用”。

    【讨论】:

    • 谢谢。它适用于 GET 方法。但映射不适用于 DELETE、POST 和其他方法。有什么特别的配置吗?
    • 我遇到了同样的问题。我会 ping API Gateway 团队并请他们帮忙。
    • 我将上下文类型从“application/json”更改为“text/plain”。
    • 仅供参考:Amazon API Gateway 团队已解决此问题。所以如果你重新生成你的 JS SDK 你应该不再有这个问题了。
    • “使用呼叫者凭据调用”选项显示为灰色,我无法打开。你知道为什么吗?
    猜你喜欢
    • 2021-12-03
    • 1970-01-01
    • 2020-02-26
    • 2017-07-24
    • 2019-02-07
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多