在AWS Cognito中为MFA配置自定义SMS消息

时间:2018-11-01 13:37:32

标签: amazon-web-services aws-lambda amazon-cognito mfa

我正在使用AWS Cognito在Web应用程序中进行身份验证。

如果用户忘记了密码,则我有一个Lambda函数触发器,该触发器发送包含链接的自定义电子邮件,该链接包含用户的电子邮件地址和验证码,因此他们可以单击链接并仅输入新密码。

因此,有一项新要求应允许用户接收短信,但目前看来,如果启用了MFA发送短信,则只能在控制台区域和Lambda函数中自定义消息, 这个event.response.smsMessage似乎什么也没做。

因此,如果用户拥有phone_number_verified true,它将发送短信而不会触发Lambda函数。

exports.handler = function(event, context) {

if(event.triggerSource === "CustomMessage_ForgotPassword") {
    var url = 'http://myurl.com/forgotpassword/'+ event.request.userAttributes.email+'/'+event.request.codeParameter
    event.response.smsMessage = 'Password Reset: Click the link ' + url + ' or enter Verification Code: ' + event.request.codeParameter 
    event.response.emailSubject = " Password reset";
    event.response.emailMessage = "Custom HTML goes here";

}
context.done(null, event);
};

这是当前在cognito用户池中的自定义消息触发器上配置的Lambda函数。

1 个答案:

答案 0 :(得分:0)

在与AWS支持进行了长时间讨论之后,他们得出了解决方案,即我的SMS文本超过140个字符。是的140,然后将不发送SMS而是发送电子邮件。日志无任何错误。

因此,他们说他们将考虑在日志中添加一些内容,至少可以告诉您由于超出了字符数限制,因此未发送SMS。