ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Firebase 인증으로 로그인 시스템 구현하기(1)
    파이어베이스(Firebase)/인증(Firebase Auth) 2018. 11. 6. 16:16

     Firebase Auth 개요

    Firebase Auth는 Firebase에서 제공하는 인증 시스템입니다. 상당히 간편하게 구현할 수 있으며, 전화 번호 인증을 제외하면 무료입니다. 대표적인 인증 방식은 아래와 같습니다. 

    • 계정 연동 : 구글, 페이스북, 트위터, 깃허브 등 (네이버, 인스타 등은 제공 X)
    • 이메일 인증 : 사용자의 이메일 주소에 메일을 보내 URL로 인증 
    • 비밀번 : 이메일, 비밀번호로 인증
    • 익명 인증 : 특별한 가입 절차없이 익명의 계정 생성
    • 기타 : 전화번호 인증, Play Game 로그인 등   


    모든 방식은 장단점이 있습니다. 예컨대 계정 연동 방식은 동기화가 돼 있으면 대개 클릭 한 번으로 편리하게 인증되는 반면 구글, 페이스북 계정이 없는 사용자나, 있다고 하더라도 비밀번호를 까먹은 사용자들은 불편하겠지요. 이와는 달리 익명의 인증 방식은 가입 절차가 없어 접근성이 높은 것이 가장 큰 장점이지만 앱 삭제시 사용자가 계정을 잃어버리게 되고, 따라서 유령 계정이 늘어날 수 있는 단점이 있습니다. 


    결론적으로 사용자마다 선호하는 인증 방식은 가지각색이기 때문에 여러 인증 시스템을 같이 구현해놓는 것이 개발자 입장에선 복잡하겠지만 사용자 입장에선 가장 친화적인 방식이라고 할 수 있겠습니다. 


    오늘은 일단 FIrebase 인증을 구현하기 위한 준비 작업들에 대해서 포스팅해보도록 하겠습니다.  


     1. 프로젝트와 Firebase 계정 연동 


    1) 안드로이드 스튜디오 상단의 [Tools] 탭을 클릭 후 [Firebase] 버튼을 누릅니다. 

    2) 오른쪽에 여러 Firebase 기능들이 나열되는데 그중 Authentication을 클릭

    3) Connect to Firebase 클릭하여 자신의 구글 계정으로 연동

      - 개발자 계정 있으신 분들은 해당 계정 사용하시면 되겠습니다.


    4) 새로운 프로젝트 생성 

      - 이름은 원하는 이름 입력(꼭 안드로이드 프로젝트 이름과 같지 않아도 생성 가능)

      - 기존 Firebase 프로젝트에 연동하기 원하면 해동 프로젝트 선택(Choose an existing...)

      - 작업이 진행되다가 만약 실패했다는 메시지가 뜨면 다시 클릭(Connect to Firebase)해주면 sync 됩니다. 정상적으로 완료됐을 때에는 버튼이 초록색 Connected로 바뀝니다.

     

     2. Build.gradle 파일에 Firebase Auth 추가

    1) Accept Change 버튼을 누르면 자동으로 추가됩니다. 저는 2018년 11월 06일 기준 최신 버전을 사용하기 위해 별도로 지우고 다시 추가해줬습니다. 

    dependencies {
    implementation 'com.google.firebase:firebase-auth:16.0.5'
    implementation 'com.google.firebase:firebase-core:16.0.4'
    }

    최신 라이브러리 버전 확인은 여기에서 확인 가능합니다. 참고로 firebase-core는 firebase에서 제공하는 분석도구입니다. 콘솔창에 추가해달라는 메시지가 떠서 세팅했습니다. 


     3. Firebase 콘솔창 세팅(1) - 인증 허용


    1) firebase 콘솔창에서 해당 프로젝트클릭 → Authentication 클릭 → 로그인 방법 설정 클릭


    2) 자신이 구현하고자 하는 방식에 맞춰 사용 설정

      - 저는 다음 포스팅에서 다룰 이메일/비밀번호와 익명을 사용 설정하였습니다. 


    4. Firebase 콘솔창 세팅(2) - SHA 인증서 지문 추가


    1) 콘솔창에서 톱니 바퀴 모양 클릭 → 프로젝트 설정 → 지문 추가 클릭

      - Firebase에서 제공하는 다른 도구들과 달리 인증 시스템은 SHA 인증서가 필요합니다. 


    2) 참고 : SHA 인증서 지문 불러오는 방법


     5. ProGuard 파일 설정


    proguard는 무단으로 디코딩하는 것을 어렵게 하는 난독화 도구입니다. 연습용이 아니라 실제로 배포하는 앱이라면 필수적으로 사용할 것이 권장됩니다. 그런데 proguard가 Firebase Auth 라이브러리에서 건드리면 안 되는 부분까지 난독화시켜버리면 제대로 작동이 안 되겠지요. 그래서 예외 처리가 필요한 것입니다. 

    1) proguard-rules.pro 파일에 아래의 두 줄을 추가해줍시다. 

    -keepattributes Signature
    -keepattributes *Annotation*


     

     준비 완료!


    Firebase를 처음 접하시는 분들도 쉽게 따라올 수 있도록 최대한 쉽게 풀어서 썼습니다. 차근차근 포스팅대로 따라하시면 큰 어려움은 없으실 것이라 믿습니다. 다음 포스팅에서 다룰 인증 시스템의 실제 코드 구조와 분량은 그렇게 길지 않으니 혹시라도 겁먹지 않으셔도 됩니다! 그럼 다음 시간에 만나요^^  






    댓글

Designed by Tistory.