본문 바로가기

AWS

(8)
Cognito ID 토큰 복호화 이전 포스트에서 Cognito로 부터 토큰을 받아오는 방법에 대해 설명했었습니다. Amplify 초기화 Cognito 소셜 로그인 추가(이론) Cognito 소셜 로그인 추가(실전) [인스타그램 클론코딩] 웹 로그인 구현 [인스타그램 클론코딩] 웹 구글 로그인 구현 [인스타그램 클론코딩] 앱 로그인 구현 (구글 로그인 포함) 그리고 이렇게 받아온 토큰을 백앤드로 전송할 수 있었습니다. [인스타그램 클론코딩] 웹에서 백엔드로 Cognito 토큰 전송 [인스타그램 클론코딩] 앱에서 백엔드로 Cognito 토큰 전송 이렇게 전송된 토큰은 express 서버라면 콜백 함수의 첫 번째 매개변수, AWS 람다 핸들러라면 event 매개변수의 headers.authorization 속성을 통해서 얻을 수 있습니다. ..
AWS Lambda 핸들러 구조 handler.js exports.handler = function(event, context, callback) { try { modify(event); // event 객체 변형 } catch(e) { console.log(e); callback(new Error("Something went wrong.")); // 오류 발생 } callback(null, event); // 작업 성공 } event 호출자로부터의 정보가 포함된 객체입니다. 요청자가 입력한 파라미터가 포함되어 있습니다. callback AWS 람다 핸들러는 리턴을 하지 않습니다. 대신 매개값으로 전달받은 callback 함수로 다음 단계로 넘어갑니다. 첫 번째 매개변수에 오류 객체가 입력되어 있으면, 다음 단계에서 오류를 반환합니다...
[인스타그램 클론코딩] Cognito Pre-SignUp 람다 함수 서버리스 설치 후 서버리스 프로젝트를 생성해 줍니다. 참고: 서버리스 프레임워크 초기화 및 AWS에 연결 npx serverless create --template aws-nodejs --path beforSignUp 인라인 편집기를 사용하지 않는 이유는 무엇인가요? Cognito와 GraphQL 서버인 백엔드에 접속하기 위해서 aws-sdk와 graphql-request 모듈을 설치하기 때문입니다. GraphQL 요청은 모듈을 사용하지 않고 어떻게든 보낼 수 있는데, aws-sdk는 Cognito User Pool에 접속하기 위해서 필수입니다. 그래서 GraphQL도 그냥 모듈을 사용했습니다. 외부 모듈을 설치하려면 인라인 편집기는 사용할 수 없습니다. yarn add aws-sdk graphql-re..
Cognito Pre-SignUp 트리거 일반설정 > 트리거에서 사전 가입 트리거에 가입하기 전에 실행될 Lambda 함수를 등록할 수 있습니다. 다음 포스트에서 클라이언트로 부터 Cognito에 전송되는 가입 정보(성, 이름, 이메일)을 가로채서 데이터베이스에 따로 저장하는 Lambda 함수를 만들어 등록해 보겠습니다.
Cognito 소셜 로그인 추가 (실전) - 구글 저는 더 이상 구글 로그인과 AWS Cognito를 연결시켜서 사용하지 않습니다. 카카오, 네이버 지원이 안되기 때문에, 어차피 카카오, 네이버 로그인 기능을 서버에 따로 만들어야 합니다. 일관성이 떨어지기 때문에 구글 로그인 기능도 서버에 따로 만들어서 사용합니다. 그리고 페이스북을 통해 AWS Cognito에 연결하면 핸드폰 번호로 로그인할 때 버그가 발생하는거 같습니다. 1. Cognito 도메인 생성 앱 통합 > 도메인 이름에서 원하는 도메인(joondong 부분)을 입력후 가용성 확인 버튼을 클릭해 줍니다. 이 도메인은 사용할 수 있습니다. 메시지가 나타나면 변경 내용 저장 버튼을 클릭해서 도메인을 저장합니다. 2. 구글 사용자 인증 정보 만들기 Google 클라우드 플랫폼 > 사용자 인증정보 ..
Cognito 소셜 로그인 추가 (이론) 일반적인 소셜 로그인은 아래와 같은 단계로 수행됩니다. 구글, 페이스북과 같은 인증업체에 클라인언트 리디렉션 주소(My redirect)를 등록 클라이언트에서 앱 ID와 앱 Secret을 사용하여 인증업체의 인증사이트(Google Auth 또는 Facebook Auth)에 접속 (예를 들어, 구글의 경우 https://www.googleapis.com/userinfo/v2/me) 사용자가 해당 인증사이트에서 로그인 로그인이 완료되면 인증사이트는 1에서 등록한 리디렉션 주소에 사용자 정보를 암호화한 토큰을 함께 전송 AWS Cognito를 통해 소셜 로그인을 구현한 경우 아래와 같은 구조가 됩니다. 기존 인증업체의 리디렉션 주소에 Cognito에서 제공하는 리디렉션 주소가 입력되고, Cognito에는 클라..
Amplify 초기화 1. Amplify CLI 설치 npm install -g @aws-amplify/cli 2. Amplify 환경설정 amplify configure 위와 같은 명령어를 실행시키면 region과 user name을 물어봅니다. 한국에서 서비스할 것이라면 region은 ap-northeast-2(서울)이 좋겠죠. user name원 원하는 이름으로 설정해 줍니다. user name까지 입력하면, 인터넷 브라우저가 열리면서 AWS IAM 사용자 생성 페이지로 바로 연결됩니다. AWS Management Console 엑세스에 체크해 주시고, 콘솔 비밀번호까지 입력해 주세요. 중간에 권한설정이 나오는데 나중에 변경할 수 있으니 다음을 눌러 일단 넘어가 줍니다. 이렇게 사용자를 생성하고 나면 사용자의 보안 정보..
AWS Amplify란? Amplify가 뭔가요? AWS Amplify는 안전하고 확장 가능한 모바일 및 웹 애플리케이션을 구축하기 위한 개발 플랫폼입니다. 쉬운 사용자 인증, 안전한 데이터 및 사용자 메타 데이터 저장, 데이터에 대한 선택적 액세스 권한 부여, 또한 기계 학습을 통합하고, ... 출처 : https://aws.amazon.com/ko/amplify/ AWS 공식 홈페이지에 나온 설명입니다만, 너무 추상적입니다. 제 나름대로 정의하자면 다음과 같습니다. EC2, RDS, Cognito, Lambda 같은 독립적인 서비스는 아니다. Amplify CLI로 다수의 독립적인 서비스를 자동으로 생성하고 연결해 준다. 프로젝트 내에서 Amplify 객체로 생성된 AWS 서비스에 접근할 수 있다. 예를 들어보겠습니다. Am..