AWS Cognito: How to send only the confirmation code in the custom email message post-sign up lambda trigger?

0

The example code under the Custom message for sign-up example doesn't seem to be working. My tests show that in order for the custom message to be sent, one has to send both the codeParameter and the linkParameter, otherwise Cognito will ignore the custom message and send the default one. I would prefer not to send the link parameter because it reveals internal information such as the client_id of my Cognito user pool. Also, the default confirmation page that the link takes users to, does not provide the best account confirmation experience for our users.

My goal is to send a link in the email message that sends users to my website, with URL query parameters that carry both the username and the confirmation code. The idea being that once users land on my site, we will make a subsequent request to our backend API with the username and code parameter from the URL, to confirm the account.

Is this something that AWS Cognito currently supports? What other alternatives are there besides intercepting the CustomMessage_SignUp trigger source?

Edmar
asked 3 months ago374 views
1 Answer
1
Accepted Answer

Hello,

I see that you want to send a custom message to your users when they signup that will contain the link to your website along with the verification code and username. However, you tested using the code given in the doc [1] but it is not working as expected. You found that it is necessary to pass both codeParameter and the linkParameter in the code. Please feel free to correct me in case I misunderstood your concern.

I replicated at my end with the sample code mentioned in the doc [1] and I verified that it is working as expected. I performed some trial and error operations and found when the default configuration of cognito userpool to confirm the user is set with verification link, in that case the custom message lambda gets triggered but only the default verification link is sent by Cognito. However, if the default configuration of cognito userpool to confirm the user is set with verification code then the sample code works fine and the verification code is sent as per the lambda trigger. Please follow the below steps to verify the configuration of the userpool:

  1. Open the desired Cognito userpool.
  2. Go to “Messaging” section
  3. At the bottom, go to “Message templates” section
  4. Select “Verification message” and click on edit
  5. Select verification type as “Code” (if not selected previously)
  6. Save Changes.

Once the above configuration has been done, go to “Userpool properties” section and attach the sample lambda function as Custom message Lambda trigger. Now, when the user sign-up, the lambda will get triggered and the verification code will be sent to the user with the email format mentioned in the sample code.

Note: there is no requirement for the linkParameter with the above steps.

You can modify the sample code as per your requirements. Also, would like to inform you that if you are using Custom message Lambda trigger then CustomMessage_SignUp is the only trigger source to send the confirmation code post sign-up. Otherwise CustomMessage_ResendCode is the trigger to resend the confirmation code.

I hope the information provided above, proves helpful in addressing your queries. Should you have any further queries, please feel free to reach out to us, we would be more than glad to assist you in all possible ways!

Happy Cloud Computing!

——————————RESOURCES—————————

[1] https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-custom-message.html#aws-lambda-triggers-custom-message-example

AWS
SUPPORT ENGINEER
answered 3 months ago
  • Thank you very much. Changing the verification type to "Code" was the solution. Maybe calling that out as a requirement in the documentation with the sample code could provide better direction for others that might run into this issue.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions