파이어베이스에 카카오 로그인 연동하기<1>

라닉
4 min readFeb 10, 2020

--

2–3일 동안 산전수전 다 겪고.. 구현한 내용 다시 한번 정리해볼 겸,
정리해보려고 합니다.

일단 먼저 알아야 할 개념은 페이스북, 카카오, 네이버, 파이어베이스 등 Authentication(인증) 기능을 제공하는 플랫폼들은 OAUTH 2.0 이라는 표준을 사용해 개발자에게 인증 기능을 제공합니다.

만약 OAUTH 2.0을 사용하지 않는다면, 아이디 패스워드로 인증해야하니 편하긴 하지만 ID, Password로만 사용자 정보에 접근하게 되니 보안에 많이 취약하게 될 수밖에 없습니다.

그래서 OAUTH 2.0이 뭐냐고 하시는 분들에게 글로 설명해드리면 참 좋을것 같은데 글로 하면 쓰는 사람도 힘들고, 보는 사람도 힘드니 영상 하나로 대체 하도록 하죠. OAUTH에 대해 아주 잘 설명되어있습니다.

출처 : 생활코딩 유튜브

이 영상 하나면 카카오, 네이버, 페이스북, 파이어베이스 등 여러 플랫폼들이 제공하는 OAuth2.0의 개념을 알게 되실겁니다.

자, 그럼 본론으로 돌아가서 파이어베이스와 카카오 로그인을 연동시켜보도록 하죠. 일단 Firebase Authenticaton은 다양한 로그인 방법을 제공합니다.

파이어베이스 Authentication 로그인 종류

제가 사용하는 것만해도 이메일/비밀번호, 전화, 구글, 페이스북 등등 다양한 로그인 방법을 제공하고 있습니다. 하지만 카카오는 목록에 없기 때문에 별도로 구현해야합니다.

구현하기 전, 먼저 알아야할 개념입니다. 카카오 서버와 사용자간의 인증이 완료되면 카카오에서 Access Token이라는것을 발급합니다. 이 Access Token을 별도의 서버로 넘겨 JWT(JSON Web Token)타입의 Custom Token을 반환 받아야합니다. 왜냐! 반환 받은 Custom Token로만 Firebase 인증이 가능하기 때문입니다.

카카오 로그인, 파이어베이스 연동을 위한 작업 순서는 다음과 같습니다.

  1. 사용자로부터 카카오 로그인를 통해 Accecss Token(String)을 발급받는다.
  2. Firebase Custom Token을 만들기 위해서 Kakao Access Token을 서버로 전송한다.
  3. 서버에서 Kakao API(사용자 정보요청)에 Access Token을 넘겨 사용자의 정보를 받아오는지 확인한다.
  4. 3번 과정에서 사용자의 정보를 성공적으로 받아왔을 경우, Firebase Admin SDK를 이용해 Firebase Auth에 User를 생성한다.
  5. 생성된 User의 UID를 이용해 Firebase Custom Token을 생성해서 클라이언트에게 반환한다.
  6. Firebase Auth에서 제공하는 signInWithCustomToken 메서드의 인자로 Custom Token을 넘겨 로그인을 처리한다.

2번에서 필요로 하는 별도의 서버는 Firebase Functions(Serverless)을 사용해서 제작하려고 합니다.(AWS를 사용하시는 분들은 Lambda를 사용하셔도 무관합니다.)

1편은 기본적인 개념과 순서에 대해 작성하고, 2편에서는 본격적으로
실습하는 글을 작성하겠습니다.

(제발) 팔로우 해주시면 큰 도움이 됩니다. (- -) (_ _) 룰루랄라

--

--