본문 바로가기

AWS

[AWS::Cognito]Demo 테스트

스토리지를 사용하려고 S3를 보다가 AWS의 서비스를 둘러보게 되었는데 Cognito라는 흥미로운 시스템이 있어서 적용해보고 싶어졌다.

어느 플렛폼이든 디바이스든 하나의 풀에서 유일한 ID를 발급하여 관리할 수 있도록 해주는 시스템이라고 한다. 전에 쿠키런킹덤과 쿠키런 오븐 브레이크를 했을 때도 DevPlay로 통일했던 거 같은데 이런 시스템 아니였을까 생각만 해본다.

 

작업순서

1. Cognito에서 유저 풀 생성

2. DemoCode를 visual studio 2019에서 동작하도록 수정

3. 테스트

 

1. Cognito에서 유저 풀 생성

https://aws.amazon.com/ko/blogs/gametech/how-to-set-up-player-authentication-with-amazon-cognito/

 

How to Set Up Player Authentication with Amazon Cognito | Amazon Web Services

Game development is all about the players. Personalizing a game experience can be key to transforming first time players into invested fans who keep coming back to your game day after day. But to offer a unique experience to a player, you need to be able t

aws.amazon.com

유저 풀을 생성하는 방법은 공식에 잘 나와있다.

먼저, 아마존 서비스에서 Cognito를 선택한다.

사용자 풀 관리를 선택한다.

풀 이름을 입력한 후에 기본값 검토를 선택한다. 설정을 순서대로 진행을 선택하면 세세하게 설정이 가능하다.

풀 생성을 클릭하면 쉽게 풀을 생성할 수 있다.

다음은 왼쪽 탭에서 앱 클라이언트를 클릭한다.

사용자 풀에 액세스할 수 있도록 앱 클라이언트를 추가한다.

앱 클라이언트를 입력한 후

에 보안이 좀더 떨어지지만 데모를 확인하기 위해 보안키 설정은 해제한다.

앱 클라이언트를 생성하면

해당 앱클라이언트에 발급된 ID를 확인할 수 있다.

2. DemoCode를 visual studio 2019에서 동작하도록 수정

DemoCode : https://github.com/aws-samples/amazon-cognito-gamelogin-sample

 

GitHub - aws-samples/amazon-cognito-gamelogin-sample: A basic demo of logging in to a game server with Amazon Cognito.

A basic demo of logging in to a game server with Amazon Cognito. - GitHub - aws-samples/amazon-cognito-gamelogin-sample: A basic demo of logging in to a game server with Amazon Cognito.

github.com

위의 코드를 다운로드 받은 후에

1.에서 발급받은 앱 클라이언트ID를 ClientSettings.h입력한다. 

ServerSettings.h의 Region도 수정해준다.

Region은 AWS Console에서 상단 우측의 지역을 클릭해보면 확인할 수 있다.

visual studio 2019에서 처음 켜보면 동작을 하지 않는데

먼저, 도구->Nuget 패키지 관리자->솔루션용 NuGet 패키지 관리자나 패키지 관리자 콘솔을 열면

복원하라는 메세지가 뜨는데 이를 복원하면 된다.

혹시 출력되지 않는다면 아래 패키지 목록을 검색해 설치한다.

그 후에 빌드를 하려고 하면 외부참조 에러가 출력되는데

라이브러리 2개를 추가해주어야한다.

각각 솔루션(GameLoginClient, GameLoginServer) 오른클릭을 한 후 속성페이지에서 솔루션 플렛폼에 맞는 라이브러리가 있는 경로를 추가해준다.  구성이 Release이고 플렛폼이 x64라면 아래의 경로로 설정해준다.

1. aws-cpp-sdk-cognito-idp.lib

amazon-cognito-gamelogin-sample-master\GameLoginClient\packages\AWSSDKCPP-CognitoIdentityProvider.1.6.20160418.25\build\native\lib\x64\Release\v141\dynamic

2. aws-cpp-sdk-core.lib

amazon-cognito-gamelogin-sample-master\GameLoginClient\packages\AWSSDKCPP-Core.1.6.25\build\native\lib\x64\Release\v141\dynamic

 

위의 라이브러리를 추가한다.

3. 테스트

이제 빌드를 하면

amazon-cognito-gamelogin-sample-master\GameLoginClient\x64\Release

경로에 실행파일이 생성되는데 dll이 필요하다.

1. aws-cpp-sdk-cognito-idp.dll

amazon-cognito-gamelogin-sample-master\GameLoginClient\packages\AWSSDKCPP-CognitoIdentityProvider.redist.1.6.20160418.25\build\native\bin\x64\Release\v141\dynamic

2. aws-cpp-sdk-core.dll

amazon-cognito-gamelogin-sample-master\GameLoginClient\packages\AWSSDKCPP-Core.redist.1.6.25\build\native\bin\x64\Release\v141\dynamic

위 경로의 각각의 dll을 복붙하고 server와 client를 실행해본다.(client는 연결되는데 시간이 좀 걸린다.)

먼저 가입을 해준다. 위에서 증명은 email로 했기 때문에 메일함에 가보면

code가 온 것을 확인할 수 있고

다시 콘솔에서 3을 선택하여 위의 코드로 인증을 한다.

다시 AWS Cognito의 유저풀을 확인해보면 사용자가 추가된 걸 확인할 수 있다.

다시 콘솔로 돌아와 로그인을 시도하면 성공적으로 로그인되는 걸 확인할 수 있다.