@aws-amplify/amplify-category-auth
Version:
amplify-cli authentication plugin
46 lines (41 loc) • 1.52 kB
JavaScript
/**
* @type {import('@types/aws-lambda').CustomMessageTriggerHandler}
*/
exports.handler = async (event) => {
// Define the URL that you want the user to be directed to after verification is complete
if (event.triggerSource === 'CustomMessage_SignUp') {
const { codeParameter } = event.request;
const { region, userName } = event;
const { clientId } = event.callerContext;
const redirectUrl = `${process.env.REDIRECTURL}/?username=${userName}`;
const resourcePrefix = process.env.RESOURCENAME.split('CustomMessage')[0];
const hyphenRegions = [
'us-east-1',
'us-west-1',
'us-west-2',
'ap-southeast-1',
'ap-southeast-2',
'ap-northeast-1',
'eu-west-1',
'sa-east-1',
];
const separator = hyphenRegions.includes(region) ? '-' : '.';
const payload = Buffer.from(
JSON.stringify({
userName,
redirectUrl,
region,
clientId,
}),
).toString('base64');
// eslint-disable-next-line spellcheck/spell-checker
const bucketUrl = `http://${resourcePrefix}verificationbucket-${process.env.ENV}.s3-website${separator}${region}.amazonaws.com`;
const url = `${bucketUrl}/?data=${payload}&code=${codeParameter}`;
const message = `${process.env.EMAILMESSAGE}. \n ${url}`;
event.response.smsMessage = message;
event.response.emailSubject = process.env.EMAILSUBJECT;
event.response.emailMessage = message;
console.log('event.response', event.response);
}
return event;
};