사후 인증 Lambda 트리거 - Amazon Cognito

사후 인증 Lambda 트리거

Amazon Cognito는 사용자를 로그인한 후 이 트리거를 호출하기 때문에 Amazon Cognito에서 사용자를 인증한 후 사용자 지정 로직을 추가할 수 있습니다.

사후 인증 Lambda 흐름

클라이언트 인증 흐름


                    사후 인증 Lambda 트리거 - 클라이언트 흐름

서버 인증 흐름


                    사후 인증 Lambda 트리거 - 서버 흐름

자세한 내용은 사용자 풀 인증 흐름 섹션을 참조하세요.

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

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

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

사후 인증 요청 파라미터

newDeviceUsed

이 플래그는 사용자가 새로운 디바이스에 로그인했는지 여부를 표시합니다. 기억된 사용자 풀의 디바이스 값이 Always 또는 User Opt-In으로 설정된 경우에만 Amazon Cognito에서 이 플래그를 설정합니다.

userAttributes

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

clientMetadata

사후 인증 트리거에 지정하는 Lambda 함수에 사용자 지정 입력으로 제공할 수 있는 하나 이상의 키-값 페어입니다. 이 데이터를 Lambda 함수에 전달하려면 AdminRespondToAuthChallengeRespondToAuthChallenge API 작업에서 ClientMetadata 파라미터를 사용합니다. Amazon Cognito는 사후 승인 함수에 전달하는 요청에 있는 AdminInitiateAuthInitiateAuth API 작업의 ClientMetadata 파라미터에서 전달된 데이터를 포함하지 않습니다.

사후 인증 응답 파라미터

Amazon Cognito는 응답에서 추가 반환 정보를 기대하지 않습니다. 함수는 API 작업을 사용하여 리소스를 쿼리 및 수정하거나 이벤트 메타데이터를 외부 시스템에 기록할 수 있습니다.

인증 자습서

Amazon Cognito가 사용자를 로그인한 직후에 사후 인증 Lambda 함수를 활성화합니다. JavaScript, Android 및 iOS용 로그인 자습서를 참조하세요.

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

사후 인증 예제

이 사후 인증 Lambda 함수 샘플은 CloudWatch Logs에 성공적으로 로그인하여 데이터를 전송합니다.

Node.js
exports.handler = (event, context, callback) => { // Send post authentication data to Cloudwatch logs console.log ("Authentication successful"); console.log ("Trigger function =", event.triggerSource); console.log ("User pool = ", event.userPoolId); console.log ("App client ID = ", event.callerContext.clientId); console.log ("User ID = ", event.userName); // Return to Amazon Cognito callback(null, event); };
Python
from __future__ import print_function def lambda_handler(event, context): # Send post authentication data to Cloudwatch logs print ("Authentication successful") print ("Trigger function =", event['triggerSource']) print ("User pool = ", event['userPoolId']) print ("App client ID = ", event['callerContext']['clientId']) print ("User ID = ", event['userName']) # Return to Amazon Cognito return event

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

JSON
{ "triggerSource": "testTrigger", "userPoolId": "testPool", "userName": "testName", "callerContext": { "clientId": "12345" }, "response": {} }