AWS自定义验证电子邮件模板

时间:2019-08-28 10:29:21

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

我正在研究AWS Cognito,以下是消息自定义的两个问题。

1)我正在使用“链接”在AWS Cognito上处理“电子邮件验证消息” 验证类型。我遇到了使“电子邮件”动态化的问题。

2)如何根据用户组或有条件地发送不同的“电子邮件”内容?

请提出建议。

谢谢

1 个答案:

答案 0 :(得分:1)

这对我有用。因此,如果有人知道更好的答案,请指点我。发送链接选择“链接”选项对我不起作用。 因此,我尝试选择“代码”选项在正文中手动添加链接。但这一开始并没有按照@SomnathRokade和@ snehanshu.js的建议进行。

这是我的lambda函数。

exports.handler = async (event, context) => {
var welcomeMessage = `
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>

<p>Dear ${event.userName},</p>

<p>Anything</p>

<p>Any text before the link <a href="http://localhost:3000/changePassword?username=${event.userName}">here.</a> Your username is your Network Rail email address. Your temporary password is ${event.request.codeParameter}.</p>

<p>Any text</p>

<p>Any other text</p>

<p>Many Thanks </p>
</body>
</html>
`;

if (event.triggerSource === "CustomMessage_AdminCreateUser") {
event.response.emailSubject = "CAT Welcome Email";
event.response.emailMessage = welcomeMessage;
}
return context.done(null,event);
};

此DID不起作用。

我用Google搜索并找到了不同的地方,它们引用的是“ event.request.userName”,“ event.request.userAttributes.sub”等,而不是“ event.userName”。但是他们也不起作用。

然后我尝试在lambda控制台日志中打印事件对象。我发现上述所有字段的值都相同。有趣的是,对象中没有“ event.request.userName”字段。而是有“ event.request.usernameParameter”。该值仍然与“ event.userName”相同。无论如何,我尝试添加“ event.request.usernameParameter”,但令人惊讶的是它起作用。

毕竟,我发现this doc对此进行了解释。

因此,最底行是使用“代码”选项,并在电子邮件正文中包含“ event.request.usernameParameter”和“ event.request.codeParameter”。有效。

希望我帮助了某人。

相关问题