작성자: Ian
작성일: 210120
특징
•
우리가 잘 못 알고 있던 정보로 사용자 정보는 Firestore → Firebase Authentication(이하 Auth) 그 자체에 저장됨 (Firestore에 저장된다고 생각하고 있을 때는 MLKit에서 사용자정보를 응용할 수 있을 것으로 생각)
•
Apple, Facebook, Google, Twitter, Github 로그인은 보다 쉽게 통합 가능
•
전화번호 인증 기능 제공
•
이외 OAuth(Kakao) 로그인도 통합 가능 (맞춤 인증 시스템 사용하기)
•
토큰 종류
◦
이메일 가입 사용자는 Firebase ID 토큰을 통해 인증 가능
◦
ID 제공업체(Apple 등) 가입 사용자는 ID 제공업체 토큰을 통해 인증 가능
◦
이외 OAuth 가입 사용자는 Firebase 맞춤 토큰을 통해 인증 가능
Firebase Auth 장점
•
토큰을 Firebase API와 통신할 때마다 자동 갱신 가능
•
모든 OAuth 인증 관리포인트를 일원화 가능 → 이외 OAuth 서비스를 통해 생성된 사용자도 UID를 발급받을 수 있음
•
계정정보 변경때문에 사용자에게 메일을 보내는 경우 직접 메일러(mailgun 등) API를 구현/사용료 결제를 할 필요 없음
•
ID 제공업체(Apple 등) 통합은 콘솔에서 API키/비밀키만 입력하면 끝인듯
•
직접구현보다 구현시간이 짧음
Firebase Auth 단점
•
이메일 인증을 따로 제공하지 않음 (제공해요 .. dennis가 씀 )
•
Firebase Auth에 저장된 정보를 서비스 API에서 활용할 때 필요한 통신 비용이 직접구현보다 큼 (HTTP API와 통신 > DB 인스턴스와 통신)
결론
•
Firebase Auth은 OAuth 인증을 아예 1군데로 통합해서 관리할 수 있게 도와줌
•
기본 제공(Apple 등) 외의 OAuth는 통합하는데 공수가 얼마나 들지는 모르겠지만, 직접 구현보다는 덜 들 것으로 보임
•
인증 방식을 Firebase Auth로 하면 아래의 고민을 해결할 수 있음
◦
관리포인트를 줄이고 싶은지? (메일러, 토큰관리)
◦
구현할 소셜 로그인이 계속 늘어날지?
◦
토큰 자동갱신이 되지 않는 서비스도 노코드로 자동갱신으로 바꾸고 싶은지?
◦
전화번호 인증 기능을 뚝딱 구현하고 싶은지?