기타 애플리케이션 옵션
Amazon Cognito 인증과 통합하려는 기존 애플리케이션 UI가 있을 수 있습니다. Amazon Cognito 사용자 풀보다 기능이 낮은 디렉터리 설정이 있는 기존 인증 페이지가 있을 수도 있습니다. 다양한 프로그래밍 언어용 AWS SDK의 Amazon Cognito 통합을 사용하여 이 유형의 애플리케이션에 인증 구성 요소를 추가하거나 교체할 수 있습니다. 다음 예를 참조하세요.
Amazon Cognito 콘솔에서 이 용도로 사용자 풀을 생성하는 경우 대화형 로그인 페이지와 OpenID Connect(OIDC) 서비스를 호스팅하는 사용자 풀 도메인이 필요하지 않을 수 있습니다. 콘솔에서 사용자 풀을 생성하는 프로세스는 자동으로 도메인을 생성합니다. 사용자 풀의 도메인 탭에서 이 도메인을 삭제할 수 있습니다. 다른 옵션으로는 AWS SDK의 API 요청과 AWS Amplify CLI의 자동 설정 옵션을 사용하여 애플리케이션을 위한 Amazon Cognito 리소스의 프로그래밍 방식 생성이 있습니다. 자세한 내용은 웹 및 모바일 앱과 Amazon Cognito 인증 및 권한 부여 통합 섹션을 참조하세요.
React 단일 페이지 애플리케이션 예시 설정
이 자습서에서는 사용자 가입, 확인 및 로그인을 테스트할 수 있는 React 단일 페이지 애플리케이션을 생성합니다. React는 사용자 인터페이스(UI)에 중점을 둔 웹 및 모바일 앱용 JavaScript 기반 라이브러리입니다. 이 예시 애플리케이션은 Amazon Cognito 사용자 풀의 몇 가지 기본 함수를 보여줍니다. React를 사용한 웹 앱 개발 경험이 있는 경우 GitHub에서 예시 앱을 다운로드
다음 스크린샷은 생성할 애플리케이션의 초기 인증 페이지입니다.
이 애플리케이션을 설정하려면 사용자 풀이 다음 요구 사항을 충족해야 합니다.
-
사용자가 이메일 주소로 로그인할 수 있습니다. Cognito 사용자 풀 로그인 옵션: 이메일.
-
사용자 이름은 대/소문자를 구분하지 않습니다. 사용자 이름 요구 사항: 사용자 이름 대소문자 구분을 선택하지 않아야 합니다.
-
다중 인증(MFA)은 필요하지 않습니다. MFA 적용: 선택적 MFA.
-
사용자 풀은 이메일 메시지를 사용하여 사용자 프로필 확인을 위한 속성을 확인합니다. 확인할 속성: 이메일 메시지 전송, 이메일 주소 확인.
-
이메일은 유일한 필수 속성입니다. 필수 속성: 이메일.
-
사용자는 사용자 풀에 직접 가입할 수 있습니다. 자체 등록: 자체 등록 활성화가 선택되었습니다.
-
초기 앱 클라이언트는 사용자 이름과 암호로 로그인할 수 있는 퍼블릭 클라이언트입니다. 앱 유형: 퍼블릭 클라이언트, 인증 흐름:
ALLOW_USER_PASSWORD_AUTH.
애플리케이션 만들기
이 애플리케이션을 빌드하려면 개발자 환경을 설정해야 합니다. 개발자 환경 요구 사항은 다음과 같습니다.
-
Node.js가 설치 및 업데이트됩니다.
-
노드 패키지 관리자(npm)가 설치되고 최소 버전 10.2.3으로 업데이트됩니다.
-
웹 브라우저의 TCP 포트 5173에서 환경에 액세스할 수 있습니다.
예시 React 웹 애플리케이션을 만드는 방법
-
개발자 환경에 로그인하고 애플리케이션의 상위 디렉터리로 이동합니다.
cd~/path/to/project/folder/ -
새 React 서비스를 만듭니다.
npm create vite@latest frontend-client -- --template react-ts -
GitHub의 AWS 코드 예제 리포지토리에서
cognito-developer-guide-react-example프로젝트 폴더를 복제합니다. cd~/some/other/pathgit clone https://github.com/awsdocs/aws-doc-sdk-examples.gitcp -r ./aws-doc-sdk-examples/javascriptv3/example_code/cognito-identity-provider/scenarios/cognito-developer-guide-react-example/frontend-client~/path/to/project/folder/ -
프로젝트의
src디렉터리로 이동합니다.cd~/path/to/project/folder/frontend-client/src -
config.json을 편집하고 다음 값을 바꿉니다.-
YOUR_AWS_REGION을 AWS 리전 코드로 바꿉니다. 예를 들면us-east-1입니다. -
YOUR_COGNITO_USER_POOL_ID를 테스트를 위해 지정한 사용자 풀의 ID로 바꿉니다. 예를 들면us-east-1_EXAMPLE입니다. 사용자 풀은 이전 단계에서 입력한 AWS 리전에 있어야 합니다. -
YOUR_COGNITO_APP_CLIENT_ID를 테스트를 위해 지정한 앱 클라이언트의 ID로 바꿉니다. 예를 들면1example23456789입니다. 앱 클라이언트는 이전 단계의 사용자 풀에 있어야 합니다.
-
-
localhost이외의 IP에서 예제 애플리케이션에 액세스하려면package.json을 편집하고"dev": "vite",줄을"dev": "vite --host 0.0.0.0",으로 변경합니다. -
애플리케이션을 설치합니다.
npm install -
애플리케이션을 시작합니다.
npm run dev -
http://localhost:5173또는http://[IP address]:5173의 웹 브라우저에서 애플리케이션에 액세스합니다. -
유효한 이메일 주소로 새 사용자를 등록합니다.
-
이메일 메시지에서 확인 코드를 검색합니다. 애플리케이션에 확인 코드를 입력합니다.
-
사용자 이름과 암호로 로그인합니다.
Amazon Lightsail을 사용하여 React 개발자 환경 생성
이 애플리케이션을 시작하는 빠른 방법은 Amazon Lightsail을 사용하여 가상 클라우드 서버를 생성하는 것입니다.
Lightsail을 사용하면 이 예제 애플리케이션의 사전 요구 사항으로 사전 구성된 작은 서버 인스턴스를 빠르게 생성할 수 있습니다. 브라우저 기반 클라이언트를 사용하여 인스턴스에 SSH를 연결하고 퍼블릭 또는 프라이빗 IP 주소로 웹 서버에 연결할 수 있습니다.
이 예시 애플리케이션의 Lightsail 인스턴스를 생성하는 방법
-
Lightsail 콘솔
로 이동합니다. 메시지가 표시되면 AWS 자격 증명을 입력합니다. -
인스턴스 생성을 선택합니다.
-
플랫폼 선택에서 Linux/Unix를 선택합니다.
-
블루프린트 선택에서 Node.js를 선택합니다.
-
인스턴스 식별에서 개발 환경에 친숙한 이름을 지정합니다.
-
인스턴스 생성을 선택합니다.
-
Lightsail이 인스턴스를 생성한 후 인스턴스를 선택하고 연결 탭에서 SSH를 사용하여 연결을 선택합니다.
-
SSH 세션이 브라우저 창에서 열립니다.
node -v및npm -v를 실행하여 인스턴스가 Node.js 및 최소 npm 버전 10.2.3으로 프로비저닝되었는지 확인합니다. -
React 애플리케이션 구성을 진행합니다.
Flutter를 사용하여 예시 Android 앱 설정
이 자습서에서는 Android Studio에서 디바이스를 에뮬레이션하고 사용자 가입, 확인 및 로그인을 테스트할 수 있는 모바일 애플리케이션을 생성합니다. 이 예시 애플리케이션은 Flutter에서 Android용 기본 Amazon Cognito 사용자 풀 모바일 클라이언트를 생성합니다. Flutter를 사용한 모바일 앱 개발 경험이 있는 경우 GitHub에서 예시 앱을 다운로드
다음 스크린샷은 가상 Android 디바이스에서 실행되는 앱을 보여줍니다.
이 애플리케이션을 설정하려면 사용자 풀이 다음 요구 사항을 충족해야 합니다.
-
사용자가 이메일 주소로 로그인할 수 있습니다. Cognito 사용자 풀 로그인 옵션: 이메일.
-
사용자 이름은 대/소문자를 구분하지 않습니다. 사용자 이름 요구 사항: 사용자 이름 대소문자 구분을 선택하지 않아야 합니다.
-
다중 인증(MFA)은 필요하지 않습니다. MFA 적용: 선택적 MFA.
-
사용자 풀은 이메일 메시지를 사용하여 사용자 프로필 확인을 위한 속성을 확인합니다. 확인할 속성: 이메일 메시지 전송, 이메일 주소 확인.
-
이메일은 유일한 필수 속성입니다. 필수 속성: 이메일.
-
사용자는 사용자 풀에 직접 가입할 수 있습니다. 자체 등록: 자체 등록 활성화가 선택되었습니다.
-
초기 앱 클라이언트는 사용자 이름과 암호로 로그인할 수 있는 퍼블릭 클라이언트입니다. 앱 유형: 퍼블릭 클라이언트, 인증 흐름:
ALLOW_USER_PASSWORD_AUTH.
애플리케이션 만들기
예시 Android 앱을 만드는 방법
-
Android Studio
및 명령줄 도구 를 설치합니다. -
Android Studio에서 Flutter 플러그인
을 설치합니다. -
이 예제 앱
의 cognito_flutter_mobile_app디렉터리 콘텐츠에서 새 Android Studio 프로젝트를 생성합니다.-
assets/config.json을 편집하고<<YOUR USER POOL ID>>및<< YOUR CLIENT ID>>를 사용자 풀 및 앱 클라이언트의 ID로 바꿉니다.
-
-
Flutter
를 설치합니다. -
PATH 변수에 Flutter를 추가합니다.
-
다음 명령을 사용하여 라이선스를 수락합니다.
flutter doctor --android-licenses -
Flutter 환경을 확인하고 누락된 구성 요소를 설치합니다.
flutter doctor-
누락된 구성 요소가 있는 경우
flutter doctor -v를 실행하여 문제를 해결하는 방법을 알아봅니다.
-
-
새 Flutter 프로젝트의 디렉터리로 변경하고 종속성을 설치합니다.
-
flutter pub add amazon_cognito_identity_dart_2을(를) 실행합니다.
-
-
flutter pub add flutter_secure_storage을(를) 실행합니다.
-
-
가상 Android 디바이스를 생성합니다.
-
Android Studio GUI에서 디바이스 관리자
로 새 디바이스를 생성합니다. -
CLI에서
flutter emulators --create --name android-device를 실행합니다.
-
-
가상 Android 디바이스를 시작합니다.
-
Android Studio GUI에서 가상 디바이스 옆의 시작
아이콘을 선택합니다. -
CLI에서
flutter emulators --launch android-device를 실행합니다.
-
-
가상 디바이스에서 앱을 시작합니다.
-
Android Studio GUI에서 배포
아이콘을 선택합니다. -
CLI에서
flutter run를 실행합니다.
-
-
Android Studio에서 실행 중인 가상 디바이스로 이동합니다.
-
유효한 이메일 주소로 새 사용자를 등록합니다.
-
이메일 메시지에서 확인 코드를 검색합니다. 애플리케이션에 확인 코드를 입력합니다.
-
사용자 이름과 암호로 로그인합니다.