언리얼 엔진 - 게임 프로젝트/AWS GameLift를 활용한 데디케이트 FPS 프로젝트

AWS Cognito - 최종) 인증 코드 예외 처리 + SignIn API 요청과 처리

monstro 2026. 6. 12. 11:36
728x90
반응형

- 개요

인증 코드를 입력하는 경우에 6자리 숫자만을 입력할 수 있도록 예외를 처리한다

또, 클라이언트에서 로그인 정보를 입력하여 SignIn API를 요청하고 로그인을 진행한다

이후 서버에서 처리한 결과를 반환하는 작업을 구현한다

 

- 스크립트 작업

1) ConfirmSignUpPage 클래스

 

회원인증 페이지 UI 클래스에 위 2개의 함수를 추가하여 입력한 인증 코드에 대한 예외를 처리하도록 설정한다

 

 

UpdateConfirmButtonState 함수의 로직은 위와 같다

함수가 호출된 시점에 static 정규표현식 객체를 생성하고

입력한 인증 코드가 정규표현식에 부합하면 버튼을 활성화 + 상태 메세지를 비우지만,

부합하지 않으면 상태 메세지를 통해 6자리 숫자를 입력하도록 알려준다

 

 

NativeConstruct 함수의 로직을 위와 같이 구성하여 

TexBox에 입력할 때마다 UpdateConfirmButtonState 함수를 호출하도록 설정한다

 

2) PortalManager 클래스

 

서버에서 반환된 로그인 처리 결과를 브로드캐스트하는 SignInStatusMessageDelegate 멤버변수를 추가한다

 

 

SignIn_Response 함수를 추가하여 서버에서 반환된 로그인 처리 결과를 처리한다

 

 

Sign 함수의 로직을 위와 같이 구성한다

  • 델리게이트에 False를 넘겨주어 브로드캐스트하여 필요한 하위 UI 비활성화
  • 서버에 전송할 HTTPRequest 객체 생성
  • 민감한 정보를 포함하여 전송하므로 POST 함수로 설정 + HTTP 헤더 및 URL 설정
  • 로그인에 필요한 데이터를 구성하고 JSON 포맷으로 직렬화
  • 직렬화된 데이터를 포함한 HTTP 요청을 서버로 전송

 

 

SignIn_Response 함수의 로직을 위와 같이 구성한다

  • 네트워크 연결이 실패했다면 델리게이트로 True를 브로드캐스트하여 필요한 하위 UI를 활성화
  • 서버로부터 반환된 문자열 JSON 데이터로 역직렬화
  • 에러 메세지가 포함되어 있다면 마찬가지로 True를 브로드캐스트하고 얼리 리턴
  • 리플렉션을 사용하여 JSON 데이터를 언리얼 구조체로 변환하고 Dump 함수를 호출하여 출력

 

3) SignInPage 클래스

헤더 파일

 

cpp 파일

 

로그인 페이지 UI 클래스에 UpdateStatusMessage 함수를 추가하여

TextBlock UI의 메세지를 설정하고 버튼 UI를 활성화한다

 

4) SignInOverlay 클래스

 

 

 

GameSession에 참여하는 테스트 위젯과 로그인 관련 페이지 UI들을 테스트하는 버튼 멤버변수를 제거한다

 

 

NativeConstruct 함수에 위와 같이 로직을 추가하여

로그인 페이지 UI의 UpdateStatusMessage 함수 Portal 중재자 클래스의 델리게이트에 연결한다


- 블루프린트 작업

1) WBP_SignInOverlay 위젯 블루프린트

 

불필요한 하위 UI들을 전부 제거한다

 

- 최종 실행 결과

회원가입

 

위와 같이 정보를 입력하여 회원가입을 진행한다

 

회원인증

 

위와 같이 발송된 인증코드를 입력하여 회원인증을 진행한다

 

인증 성공

 

회원인증이 성공하였다

 

로그인

 

로그인 후 Dump 함수 호출

 

로그인 후에 위와 같이 SignIn_Response 함수가 호출되고 내부적으로 Dump 함수가 호출된 것을 확인할 수 있다

 

 

AWS Cognito에서 실제 추가된 사용자를 확인할 수 있다

728x90
반응형