사후 확인 Lambda 트리거 - Amazon Cognito

사후 확인 Lambda 트리거

새로운 사용자가 확인된 후 Amazon Cognito가 이 트리거를 호출하여 사용자 지정 메시지를 보내거나 사용자 지정 로직을 추가할 수 있습니다. 예를 들어, 이 트리거를 사용하여 새로운 사용자 데이터를 수집할 수 있습니다.

요청에는 확인된 사용자의 현재 속성이 포함됩니다.

사후 확인 Lambda 흐름

클라이언트 확인 가입 흐름


                    클라이언트 확인 가입 흐름

서버 확인 가입 흐름


                    서버 확인 가입

암호 분실 확인 흐름


                    암호 분실 확인 흐름

사후 확인 Lambda 트리거 파라미터

이러한 파라미터는 Amazon Cognito가 공통 파라미터의 이벤트 정보와 함께 이 Lambda 함수에 전달하는 파라미터입니다.

JSON
{ "request": { "userAttributes": { "string": "string", . . . }, "clientMetadata": { "string": "string", . . . } }, "response": {} }

사후 확인 요청 파라미터

userAttributes

사용자 속성을 나타내는 하나 이상의 키-값 페어입니다.

clientMetadata

사후 확인 트리거에 지정하는 Lambda 함수에 사용자 지정 입력으로 제공할 수 있는 하나 이상의 키-값 페어입니다. 다음 API 작업에서 ClientMetadata 파라미터를 사용하여 이 데이터를 Lambda 함수에 전달할 수 있습니다. AdminConfirmSignUp, ConfirmForgotPassword, ConfirmSignUpSignUp.

사후 확인 응답 파라미터

응답에는 추가적인 반환 정보가 없습니다.

사용자 확인 자습서

사후 확인 Lambda 함수는 Amazon Cognito가 새로운 사용자를 확인한 직후에 시작됩니다. JavaScript, Android 및 iOS용 사용자 확인 자습서를 참조하세요.

플랫폼 자습서
JavaScript 자격 증명 SDK JavaScript 사용자 확인
Android 자격 증명 SDK Android 사용자 확인
iOS 자격 증명 SDK iOS 사용자 확인

사후 확인 예제

이 예에서 Lambda 함수는 Amazon SES를 사용하여 사용자에게 확인 이메일 메시지를 전송합니다. 자세한 내용은 Amazon Simple Storage Service 개발자 가이드를 참조하세요.

Node.js
var aws = require('aws-sdk'); var ses = new aws.SES(); exports.handler = (event, context, callback) => { console.log(event); if (event.request.userAttributes.email) { sendEmail(event.request.userAttributes.email, "Congratulations " + event.userName + ", you have been confirmed: ", function(status) { // Return to Amazon Cognito callback(null, event); }); } else { // Nothing to do, the user's email ID is unknown callback(null, event); } }; function sendEmail(to, body, completedCallback) { var eParams = { Destination: { ToAddresses: [to] }, Message: { Body: { Text: { Data: body } }, Subject: { Data: "Cognito Identity Provider registration completed" } }, // Replace source_email with your SES validated email address Source: "<source_email>" }; var email = ses.sendEmail(eParams, function(err, data){ if (err) { console.log(err); } else { console.log("===EMAIL SENT==="); } completedCallback('Email sent'); }); console.log("EMAIL CODE END"); };

Amazon Cognito는 이벤트 정보를 Lambda 함수에 전달합니다. 그런 다음 함수는 응답이 변경되면 동일한 이벤트 객체를 Amazon Cognito에 반환합니다. Lambda 콘솔에서 해당 Lambda 트리거와 관련 있는 데이터로 테스트 이벤트를 설정할 수 있습니다. 다음은 이 코드 샘플의 테스트 이벤트입니다.

JSON
{ "request": { "userAttributes": { "email": "user@example.com", "email_verified": true } }, "response": {} }