我正在研究AWS Cognito,以下是消息自定义的两个问题。
1)我正在使用“链接”在AWS Cognito上处理“电子邮件验证消息” 验证类型。我遇到了使“电子邮件”动态化的问题。
2)如何根据用户组或有条件地发送不同的“电子邮件”内容?
请提出建议。
谢谢
答案 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”。有效。
希望我帮助了某人。