Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在lambda中获取Cognito验证码,以便使用本地提供者发送SMS_Amazon Web Services_Aws Lambda_Aws Sdk_Amazon Cognito_Amazon Sns - Fatal编程技术网

Amazon web services 在lambda中获取Cognito验证码,以便使用本地提供者发送SMS

Amazon web services 在lambda中获取Cognito验证码,以便使用本地提供者发送SMS,amazon-web-services,aws-lambda,aws-sdk,amazon-cognito,amazon-sns,Amazon Web Services,Aws Lambda,Aws Sdk,Amazon Cognito,Amazon Sns,我想发送验证码到手机用户的短信使用本地供应商在我的国家没有使用AWS的SNS 我在CustomMessage中有一个触发器,lambda函数工作正常。但我的问题是,我无法在lambda函数中找到验证码。只能找到codeParameter,它是{} 那么,如何获取验证代码以使用本地提供程序发送它呢?在这种情况下,您需要实现自定义身份验证。因为科尼托不会告诉你这个秘密。我们已经使用Cognito自定义身份验证机制实现了自定义身份验证场景 您可以使用DefineAuth、CreateAuth和Veri

我想发送验证码到手机用户的短信使用本地供应商在我的国家没有使用AWS的SNS

我在CustomMessage中有一个触发器,lambda函数工作正常。但我的问题是,我无法在lambda函数中找到验证码。只能找到codeParameter,它是{}


那么,如何获取验证代码以使用本地提供程序发送它呢?

在这种情况下,您需要实现自定义身份验证。因为科尼托不会告诉你这个秘密。我们已经使用Cognito自定义身份验证机制实现了自定义身份验证场景

您可以使用DefineAuth、CreateAuth和VerifyAuth触发器来实现。请参考以下流程


对于那些寻找替代解决方案的人,我建议使用Cognito的定制SMS发送者触发器。使用自定义SMS触发器时,不必实现自定义身份验证机制

自定义SMS发送者触发器将使您能够获取加密的代码参数,然后您可以使用为用户池配置的KMS密钥对其进行解密

您可以执行以下步骤:

请使用KSM密钥。 创建自定义SMS发送方lambda函数。此函数应该能够执行kms:解密操作。 在lambda函数中实现自定义sms逻辑。由于您现在有了代码参数,这将非常容易。 为您的用户池授予调用自定义sms发件人函数的权限。 为用户池设置自定义sms发件人触发器。当您这样做时,您还需要设置Cognito将使用的KMS键。可以使用aws cli执行此操作。 参考资料:

Terraform当前不支持自定义sms发送者触发器。关于这一点,有一个共同的看法


好啊我查一下。谢谢