我正在使用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函数。
答案 0 :(得分:0)
在与AWS支持进行了长时间讨论之后,他们得出了解决方案,即我的SMS文本超过140个字符。是的140,然后将不发送SMS而是发送电子邮件。日志无任何错误。
因此,他们说他们将考虑在日志中添加一些内容,至少可以告诉您由于超出了字符数限制,因此未发送SMS。