带有HTML标记的Cognito自定义消息

时间:2018-06-11 18:32:34

标签: html aws-lambda aws-cognito

我发送带有HTML标记的消息的Cognito Verification Link。

我正在尝试将codeParameter发送到自定义按钮中:

 <div align="center" class="button-container center" style="padding-right:5px;padding-left:5px;padding-top:15px;padding-bottom:15px">
                            <a href="{####}" target="_blank" style="display:block;text-decoration:none;-webkit-text-size-adjust:none;text-align:center;color:#323232;background-color:#ffc400;border-radius:25px;-webkit-border-radius:25px;-moz-border-radius:25px;max-width:210px;width:160px;width:auto;border-top:0 solid transparent;border-right:0 solid transparent;border-bottom:0 solid transparent;border-left:0 solid transparent;padding-top:5px;padding-right:25px;padding-bottom:5px;padding-left:25px;font-family:'Droid Serif',Georgia,Times,'Times New Roman',serif;mso-border-alt:none">
                                <span style="font-size:16px;line-height:32px">Verify your email</span>
                            </a>
 </div>

但它发送给我的是:

x-webdoc://9166B278-3889-4E59-A9E2-F88FD6970944/%7B##</a>

而不是像这样的链接:

https://xxxxx.auth.us-east-2.amazoncognito.com/confirmUser?client_id=xxxxxxxxxxxxxxx&user_name=marcuspdg22&confirmation_code=244905

2 个答案:

答案 0 :(得分:6)

我遇到了同样的问题。以下是一些对我有用的提示:

  • 不要使用完整的HTML页面,只需将HTML代码包含在<body></body>
  • 不支持Javascript,Jquery等
  • 在UserPool控制台中,转到“消息自定义”并将验证类型更改为代码。之后,只需在lambda触发器中创建一个包含此代码的确认链接,例如'https://{yourUserPoolDomain/confirmUser?client_id={yourClientId}&user_name=' + event.userName + '&confirmation_code=' + event.request.codeParameter

您可以将此确认链接放在href标记内。让我知道它是否适合你。

答案 1 :(得分:0)

我设法(经过数小时的反复试验)使用Custom Message Lambda Trigger向用户发送HTML电子邮件。

步骤1:如@Olavo所述,将验证类型更改为代码。

步骤2:在用户池->触发器下,设置用于自定义电子邮件的lambda函数

步骤3:在下面创建类似于我的lambda函数

请注意,您可能没有用户属性名称。您可以删除它。

这是我完整的Lambda函数,带有像您一样的按钮:

npm install epoll

这是该电子邮件在gmail中的外观的屏幕截图:

enter image description here