Cognito를 소셜 로그인과 통합하는 방법

( Ryan Bui) (2020 년 12 월 16 일)

자바 스크립트 개발자 Ryan Bui

앱에 대해 Cognito를 사용하여 소셜 로그인을 수동으로 통합하려는 경우 바로 이곳에 왔습니다! Cognito가 제공하는 것과 소셜 로그인을 통합 할 수 없었습니다. 이는 프런트 엔드가 Flutter를 사용하기 때문에 Amplify 또는 Cognito 사용자 풀과 쉽게 통합 할 수 없었기 때문입니다. Flutter는 현재 이러한 서비스와 통합하기에는 너무 어려웠습니다.

또한 프런트 엔드에 임시 AWS 자격 증명을 부여하기 위해 자격 증명 풀을 만들고 싶지 않았습니다. 이 문제를 해결하기 위해 우리는 프로그래밍 방식으로 Cognito에 등록 / 로그인하는 / auth 엔드 포인트를 활성화했습니다. 사용자는 차례로 인증 토큰을 받게됩니다.

사용자는 Google, Facebook 또는 Apple에서 자신의 소셜 토큰을 보내야합니다. 이러한 토큰의 유효성 검사는 백엔드에서 수행됩니다.

가입

필요한 것은 “CognitoIdentityServiceProvider”라이브러리를 사용하는 것입니다. 필요한 자격 증명과 사용자에게 할당 할 속성 (이메일, 이름 등)을 제공합니다. 이러한 속성은 풀을 생성 할 때 필요합니다 (아래 예).

그 대신 방금 만든 사용자 ID가 필요합니다.

로그인

로그인시 사용자 이름과 비밀번호를 제공해야합니다. 원하는 경우 이메일로만 로그인 할 수 있습니다. 성공하면 나중에 API에 대한 사용자 호출을 승인 할 때 사용할 idToken이 필요합니다.

수신 요청 승인

승인자를 구성하는 방법에는 두 가지가 있습니다. 수동으로 수행하는 경우 AWS 콘솔을 열고 API Gateway 서비스로 이동하여 API에서 권한 부여자를 생성해야합니다.

다음 단계에서는 권한 부 여자에게 이름을 지정하고 원하는 Cognito 사용자 풀을 선택합니다. 인증자를 사용할 방법을 선택하고 Method Request를 클릭하여이 방법을 인증 자에 연결합니다.

먼저 승인에서 승인자를 선택합니다. OAuth 범위의 경우 “NONE”을 선택하여 ID 토큰을 예상합니다. 범위가있는 액세스 토큰을 사용하려는 경우 AWS 문서 를 따를 수 있습니다.

수동 작업에 필요한 모든 것입니다. 구성! 서버리스로 자동화하려는 경우 수행 할 수있는 방법은 다음과 같습니다.

여기 사용자 풀의 ARN을 제공해야합니다. 토큰을 캐시하고 싶지 않기 때문에 resultTtlInSeconds : 0 를 사용합니다. ID 소스로 인증 헤더의 경로를 입력합니다.

이제이 API의 소비자는 인증 헤더에 Cognito ID 토큰을 전달하기 만하면됩니다.

간단히 요약…

Cognito는 Flutter와 잘 통합되지 않습니다. AWS SDK를 사용하여 가입 및 로그인했습니다. 그렇게함으로써 우리는 클라이언트에게 다시 전달할 토큰을 생성 할 수 있습니다. 이러한 토큰은 API 게이트웨이의 권한 부 여자에 대해 유효성을 검사하는 데 사용됩니다.

이 기사를 공동 작성해 주셔서 특별히 감사드립니다. 다음에서 그의 자습서를 확인하십시오.
(AWS 구성 방법) Route 53 & (S3 정적 웹 사이트 프록시 방법)

Ryan은 TDD 및 BDD와 긴밀히 협력 한 Javascript 개발자입니다. 그는 비디오 게임과 기타 연주를 즐깁니다.

TribalScale 은 기업을 돕는 글로벌 혁신 회사입니다. 디지털 시대에 적응하고 번창하십시오. 우리는 팀과 프로세스를 혁신하고 동급 최고의 디지털 제품을 구축하며 파괴적인 스타트 업을 만듭니다. 웹 사이트 에서 우리에 대해 자세히 알아보세요. Twitter , LinkedIn & Facebook !

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다