AWS Cognito의 기본 인증 프로세스에서는 이메일 가입을 할 때 이메일 인증절차를 거치게 되어있습니다. 하지만, 이메일 인증절차 없이 가입을 시켜야 될 상황이 생길 수 있습니다. 이번 포스팅에서는 이메일 인증을 하지 않고 사전 로그인시키는 방법에 대해서 알려드리도록 하겠습니다.
우선 Cognito UserPool에 진입한 후 Triggers/Pre sign-up을 보시면 가입 전 람다 함수를 설정할 수 있는 패널을 확인하실 수 있습니다.
람다 함수를 추가하기 위해서는 함수를 생성해야됩니다. 아래처럼 람다 함수를 작성해주고 함수를 배포합니다.
exports.handler = (event, context, callback) => {
// autoConfirmUser 플래그를 true로 설정해주면 인증없이 로그인 가능
event.response.autoConfirmUser = true;
// 이메일 인증 관련 처리
if (event.request.userAttributes.hasOwnProperty("email")) {
event.response.autoVerifyEmail = true;
}
// 핸드폰 인증 관련 처리
if (event.request.userAttributes.hasOwnProperty("phone_number")) {
event.response.autoVerifyPhone = true;
}
// Return to Amazon Cognito
callback(null, event);
};
아래 구문이 핵심입니다. 유저가 가입을 할 때 람다함수가 가입 전에 실행되게 되는데 autoConfirmUser를 강제로 true로 변경해줌으로써 자동으로 인증이 되었다고 가정하고 가입을 진행하게 됩니다.
event.response.autoConfirmUser = true;
서비스의 목적에 따라서 Email, Phone 인증과 관련된 절차는 추가적으로 작성해주시면 됩니다.
event.response.autoVerifyEmail = true; // email
event.response.autoVerifyPhone = true; // phone
작성한 람다 함수를 처음에 설명드렸던 Triggers/Pre sign-up의 람다 함수에 생성한 람다 함수를 넣어주면 이메일 인증을 거치지 않고 사전 로그인을 시킬 수 있게 됩니다.
'개발 > AWS' 카테고리의 다른 글
Elastic Beanstalk(EB)에 HTTPS 적용하는 방법 (0) | 2020.09.17 |
---|---|
코그니토 커스텀 속성 삭제하는 방법 (AWS Cognito delete-custom-attributes) (2) | 2020.09.11 |
[AWS Cognito] A client attempted to write unauthorized attribute 에러 해결방법 (0) | 2020.03.12 |
Elastic Beanstalk EACCES: permission denied 에러 해결방법(.npmrc unsafe-perm) (4) | 2020.02.28 |
AWS Cognito 사용자 지정 속성 추가하는 방법 (1) | 2020.02.14 |
이 포스팅은 쿠팡파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.