AWS Cognito:使用邮递员测试触发器

Posted

技术标签:

【中文标题】AWS Cognito:使用邮递员测试触发器【英文标题】:AWS Cognito: Test triggers using postman 【发布时间】:2021-10-16 03:02:06 【问题描述】:

我对 AWS 很陌生,我正在尝试实施无密码身份验证。我创建了一个用户池,并按照本教程在 AWS Cognito 中实现了电话和 OTP 身份验证触发器:https://youtu.be/m8DE5ZV4FG4

我使用 AWS Cognito 的应用程序客户端设置中的托管 UI 创建了一个用户。但不幸的是,我在用于注册的号码中没有收到任何 OTP。这是测试它的正确方法吗?有没有办法在不使用 AWS Amplify 的情况下测试触发器,例如:使用 Postman 等其他软件?

【问题讨论】:

我不会看 15 分钟的教程来找出答案,但是您是否已将您的帐户从 SES/SNS 沙箱中取出,以便发送电子邮件或短信?或者您是否验证了您正在测试的电话号码/电子邮件地址? @stijndepestel,是的,我的电话号码已经过验证。为了发送 OTP,我在触发器中使用了 SNS 服务。我需要单独设置吗? 如果您启用了 Cloudwatch,那么对于您的帐户(调整 region/accountId),您应该会看到一个日志组,您可以在其中判断发送的 SMS 是否有任何问题:sns///DirectPublishToPhoneNumber 是日志组名称。 【参考方案1】:

仅调用这些 lambda 不会触发用户创建或确认。如果用户调用 Cognito 注册 API 并且:

    用户名未被占用 预注册触发器成功(或者您没有),他们定义“成功”,即他们传递给 lambda 的事件被返回给他们,只修改了“响应”对象。

您可以使用 postman 做的所有事情就是通过 API 网关之类的东西公开您的 lambda 触发器,并传入各种有效负载以查看它是否正确响应。这是一种方法..

就个人而言,我验证触发器的方法是编写单元测试,这些测试在触发器部署时运行,根据预期响应测试触发器的各种有效负载。

我不确定您使用哪种语言编写 lambda,但任何语言都可以使用 SDK 直接调用 Cognito 来注册用户。这反过来会调用你的触发器。 await Cognito.signUp( ... ) 在节点中为我服务。

【讨论】:

以上是关于AWS Cognito:使用邮递员测试触发器的主要内容,如果未能解决你的问题,请参考以下文章

AWS cognito 用户迁移池触发器不适用于登录流程

AWS Cognito lambda 触发两次

AWS Cognito 用户池的事件触发器对象

在 AWS Cognito 用户池中删除用户时触发 Lambda 函数

AWS Cognito Post-Confirmation [已结束]

在 DotNet 中创建 AWS Cognito PreSignup Lambda