티스토리 뷰
반응형
- AWS Cognito는 Facebook이나 Twitter와 같은 소셜 로그인 기능을 추상화하여 통합적으로 쉽게 관리해주는 서비스다.
- npm에 있는 passport와 비슷한 친구다.
- Facebook Login은 Facebook Developer에서 App을 생성한 뒤 사용하여 Facebok Login 앱을 사용 설정하면 사용할 수 있다.
AWS Cognito 설정
- 간단하게 인증 Pool만 관리해주는 Federated Indentities를 사용한다.
- Create New Identity Pool로 새로운 Identity Pool을 생성할 수 있고, Authentication providers에서 페이스북이나 트위터 같은 서트파티 OAuth의 ID 값을 추가할 수 있다.
- 현재 사용가능한 서트파티 인증 제공자(Authentication providers) 목록
- Cognito 자체 (User Pool 사용?)
- Amazon
- Google+
- Twitter/Digits (Digits?)
- OpenID
- SAML
- Custom (기타?)
- 현재 사용가능한 서트파티 인증 제공자(Authentication providers) 목록
- 기본적으로 서드파티 인증 성공 후 다음 코드를 실행시켜 주면 된다. 예시는 Javascript 지만 Swift, Java, Xamarin 등 다양하게 있다.AWSconfigregion = 'ap-northeast-1' // Region;AWSconfigcredentials =IdentityPoolId: 'YOUR_AWS_COGNITO_IDENTITY_POOL_ID'Logins:'graph.facebook.com': responseauthResponseaccessToken;
YOUR_AWS_COGNITO_IDENTITY_POOL_ID
는 Identity Pool 생성 후 Sample Code 메뉴에서 확인 할 수 있다.
Facebook App 설정
- Facebook Developer에서 App 생성은 생략한다.
- App 생성 후 App Id를 어딘가에 잘 기록해둔다.
- 앱 기본 설정에서 앱 도메인과 사이트 URL을 설정한다.
- 앱 도메인은
file://
로 시작하는 것은 안되는 것 같다. 간단한 웹서버라도 띄워서http://
를 사용하자.
제품 추가에서 Facebook Login을 선택하여 추가한다. 이 때 유효한 OAuth 리디렉션 URI에 리디렉션할 URI를 설정해준다. (ex. http://localhost/cognito) - 앱 도메인은
- 이 것이 설정되어 있지 않으면 로그인 시 리디렉션 Exception이 발생한다.
- Facebook Developer Guide에도 나와있지만 최하단의 Sample 코드처럼 작성하면 아래와 같은 샘플 로그인 페이지가 나타난다.
마무리
- 설정을 모두 마치고 아래에 있는 Sample HTML Code처럼
aws-sdk
와facebook-sdk
가 Load된 상태에서 로그인을 시도 후 성공하면 샘플 페이지에서 아래와 같이 상태가 변경되고 Cognito Token 값이 리턴된다.Credentials
로 넘어온 모든 값들을 DB에 저장해 놓고, 인증이 필요할 때마다 사용하면 될 듯하다.Expiration
은 누가봐도 UNIX TIME 포맷이다.. moment 같은 곳에 넣고 돌려서 re-formating 해주면 될 듯하다.
- AWS Console의 Cognito에서 GUI로 Dashboard를 확인 할 수 있다.
- 앞으로 확인해볼 것은
aws-sdk
의CognitoSyncManager
를 사용해서 dataset에 key와 value를 집어넣어서 사용하는 것과 카카오톡 SDK 사용가능 여부. 그리고 실제 환경에서의 인증 테스트 정도다. 하.. 아직도 할게 많네 ㅜㅜ
Sample HTML Code
Cognito와 Facebook App 설정만 잘 되었다면 아래 코드에서 Cognito ID와 Facebook App ID만 바꾼다면 잘 될 것으로 추정한다..!
Facebook Login JavaScript Example<script><!--Below we include the Login Button social plugin. This button usesthe JavaScript SDK to present a graphical Login button that triggersthe FB.login() function when clicked.-->
반응형
'개인공부 > Today I Learned (TIL)' 카테고리의 다른 글
[TIL] MacOS 에서 Docker Desktop 완전 삭제하기 (2) | 2021.09.28 |
---|---|
[TIL] GitKraken Inotify Error 해결 방법 (0) | 2019.04.28 |
[SSL] 개인키 생성에서 SSL 구입과 nginx에 적용까지 (0) | 2017.03.07 |
[TIL] tmux 완전 기초 (0) | 2016.12.14 |
[TIL] AWS CodeBuild 간단 사용기와 후기 (0) | 2016.12.13 |
[TIL] 가설사고에 대해 (0) | 2016.12.11 |
[TIL] Vim Plugin을 사용하여 Node.js 개발 환경 구축하기 (0) | 2016.12.09 |