【问题标题】:Post Confirmation doesn't trigger lambda function确认后不会触发 lambda 函数
【发布时间】:2019-09-05 09:44:36
【问题描述】:

我的步骤:

  • 我通过调用 AdminCreateUser API 创建了用户。
  • 我使用自定义登录表单进行首次登录
  • 我更改密码(因为我处于 FORCE_PASSWORD_CHANGE 状态) 现在用户已确认
  • 触发器不触发。

【问题讨论】:

  • 您找到发生这种情况的原因了吗?面临同样的问题!

标签: amazon-web-services amazon-cognito amazon-cognito-triggers


【解决方案1】:

当使用adminCreateUser 或从 Cognito 仪表板手动创建用户时,Cognito 不会触发发布确认。

【讨论】:

  • 您有任何文件证明这一点吗?我不是在挑战你的回答。这完全有道理,因为在我的情况下也没有被触发,但是 AWS 中是否有任何地方可以从中获取信息?
  • Cognito 文档很差。我自己已经对此进行了一段时间的探索,我可以通过我的探索来证实这一点。我已经测试了这两种情况,情况就是这样。
  • 这是正确的,adminCreateUser 不会触发 post Confirm 事件。但是,您可以触发预注册,查看我对此问题的其他答案以获取详细信息和参考。
  • 不幸的是,这是正确的。我已经尝试了所有配置。以下是有效的触发器列表:预注册、预身份验证、身份验证后。我试过取消勾选“确认电话”和“确认电子邮件”单选框,但它仍然不起作用。我也在做同样的事情,我需要用户提供数据,以便我可以使用 Lambda 将该信息弹出到数据库中。这太糟糕了。
  • @ShawnMclean 我使用 AWS CLI 创建了一个注册脚本并使用了 Pre Sign Up 触发器。然后我用我的 Lambda 来做我的诡计。如果您想在他们为您的 lambda 完成身份验证(在他们提交代码或其他内容之后)获取用户信息,最好的路径是使用 Amplify 或 cognito 身份 SDK 并使用 Post Auth 触发器进行注册。我希望这会有所帮助!
【解决方案2】:

我也在寻找这个问题的答案,我在official documentation:-

您通过将 AWS Lambda 函数分配给用户来创建自定义工作流程 池触发器。当您使用 AdminCreateUser API 操作时,Amazon Cognito 调用分配给 预注册的函数 触发。当 Amazon Cognito 调用此函数时,它会传递一个 JSON 有效载荷,该函数将其作为输入接收。

因此,如果我们使用 AdminCreateUser API 操作,基本上我们需要将 lambda 函数附加到预注册触发器。没有检查它是否有效。确认会很棒!

更新:-

我自己试过了,它确实触发了预注册 lambda 函数。所以确认了!

【讨论】:

    【解决方案3】:

    您必须确保致电adminConfirmSignUp;一旦确认后触发就会发生。

    请在下面找到我如何使用 Javascript 调用它的示例

      await cognito.adminConfirmSignUp({
            UserPoolId: userPoolId,
            Username: username
        }).promise()
    

    【讨论】:

      猜你喜欢
      • 2020-05-16
      • 2021-12-07
      • 2020-12-12
      • 2018-05-05
      • 2021-06-24
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      • 1970-01-01
      相关资源
      最近更新 更多