1. 비동기 통신을 위한 사전 지식
1.1 개요
비동기 통신은 API를 활용하기 때문에 어떤 방법으로 호출하고 데이터를 전송하는지 파악하는 작업은 필수적이다. 그렇기에 실습에 앞서 카카오 개발자 페이지에서 제공하는 문서들을 바탕으로 전반적인 로그인 흐름과 도구들을 활용하여 프로젝트에 적용하는 과정을 살펴보자.
1.2 OAuth
1.2.1 OAuth 2.0
OAuth는 Open Authorization의 줄임말으로, 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. OAuth 2.0은 OAuth 1.0에 비해 보안상의 이슈를 해결한 버전이다.
이러한 표준을 사용하는 대표적인 기업에는 구글, 페이스북, 카카오, 네이버 등이 있다.
1.2.2 OAuth 구성 요소
- 사용자: 서비스를 이용하려는 사람, 개인정보(Resource)를 소유하고 있는 사람이기도 하다.
- 클라이언트: 사용자가 이용하려는 서비스, 클라이언트는 사용자에게 필요한 개인정보를 요청한다.
- Authorization Server: 사용자에게 권한을 부여해주는 서버, 사용자는 개인정보를 이 서버에 전송하여 Authorization Code를 받는다. 클라이언트는 사용자의 Authorization Code를 서버에 전송하여 Token을 발급받는다.
- Resource Server: 사용자의 개인정보를 가지고있는 OAuth 표준을 사용하는 기업의 서버를 뜻한다.
1.2.3 OAuth의 로그인 방식
- 소셜 로그인 같은 경우에는 클라이언트가 Resource Server에 사용자의 개인정보를 요청하여 사용자 대신 로그인하는 방식이다.
1.3 카카오 로그인 흐름