使用参数aws cognito验证电子邮件

时间:2017-08-03 09:19:49

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

我可以在aws cognito验证邮件中使用电子邮件作为参数吗?

尝试了这个:

You can verify your account here: <a href="http://localhost:8080/{####}/{email}">verification Link</a>

{####}可以正常工作{email}而不是

感谢

2 个答案:

答案 0 :(得分:2)

我知道您将“{email}”称为占位符,Cognito会识别并替换该用户的电子邮件值。所以,如果你的意思是不支持。

但是,Cognito提供了一种通过lambda来自定义验证消息的方法。以下是details

在lambda触发器中创建动态FQDN更容易 - 因此开发人员可以将电子邮件放在消息(或uri)的适当位置

以下是自定义消息lambda函数的示例

exports.handler = function(event, context) {
// 
if(event.userPoolId === "theSpecialUserPool") {
    // Identify why was this function invoked
    if(event.triggerSource === "CustomMessage_SignUp") {
        // Ensure that your message contains event.request.codeParameter. This is the placeholder for code that will be sent
        event.response.smsMessage = "Welcome to the service. Your confirmation code is " + event.request.codeParameter;
        event.response.emailSubject = "Welcome to the service";
        event.response.emailMessage = "Thank you for signing up. " + event.request.codeParameter + " is your verification code";
    }
    // Create custom message for other events
}
// Customize messages for other user pools

//

// Return result to Cognito
context.done(null, event);
};

答案 1 :(得分:2)

选择将触发自定义消息的lambda函数,在我的情况下为CognitoCustomMessage

enter image description here

在这个lambda函数中,您可以从userAttributes获取“email”,“name”等,如:

if(event.triggerSource === "CustomMessage_SignUp") {
  const { codeParameter, userAttributes: { name, email } } = event.request;

  event.response.emailSubject = "Welcome to ...";
  event.response.emailMessage = `Welcome ${name}, this is your verification 
  code ${codeParameter}.`;
}

查看AWS Lambda Triggers

的完整列表
相关问题