본문

170816(수) - Firebase Authentication

Firebase Authentication


Firebase Authentication

- 대부분의 App은 user의 identity를 알고자 한다.

- user의 identity를 알면 app이 data를 cloud에 안전하게 저장하고 사용자에게 동일한 맞춤 환경을 제공 가능하다.

- Firebase authentication은 backend services, easy-to-use SDKs, ready-made UI libraries를 제공하여 user를 app에 인증한다.

- password, 전화번호,  Google, Facebook, Twitter 등 인기있는 인증방법을 지원한다.

- 다른 Firebase 서비스와 통합되며 OAuth 2.0 및 OpenID connect와 같은 표준을 사용하므로 custom backend와 쉽게 통합 가능하다.

- 기본적으로 인증된 사용자는 Realtime Database 및 Cloud Storage의 데이터를 읽고 쓸 수 있다.

-> 관리자는 user의 aceess 권한을 제어 가능하다.

Firebase Database Rules and Storage Security Rules.



주요 기능

- Using FirebaseUI Auth

1. Set up sign-in 메소드

2. Customize the Sign-in UI

3. FirebaseUI를 사용하여 sign-in 플로우를 진행한다.


- Using the Firebase Authentication SDK

1. Set up sign-in 메소드

2. sign-in UI flow 구현

3. user의 credential을 Authentication SDK에 전달



Firebase Projects의 user

- Firebase User Object는 Firebase project에서 App에 등록한 user의 계정을 나타낸다.

- Firebase Project의 모든 app은 user database를 공유한다.

- Firebase User instance는 Firebase Auth instance와 별개

-> 동일한 Context에서 다른 user에 대한 reference를 여러개 가질 수 있으며 해당 method를 호출 가능하다.


- User properties

· Firebase user는 unique ID, primary email address, name, photo URL 등의 고정된 basic properties set을 가지고 있다.

· Firebase User object에 다른 속성을 직접 추가할수는 없음.

· 대신 Firebase Realtime Database에 추가 속성을 저장 가능하다.

· User가 처음 앱에 가입하면, 사용가능한 information을 이용하여 profile 데이터가 채워진다.

- email address & password로 등록한 경우 해당 속성만 채워진다.

- Google, Facebook, Twitter 등의 federated identity provider로 가입한 경우, 해당 계정 정보를 이용하여 profile을 채운다.

- custom auth system을 사용한 경우 원하는 정보를 explicit하게 profile에 추가해야한다.

- 한번이라도 만들어지게 되면 사용자의 정보를 reload 하여 다른 장치에서 변경한 내용을 통합 가능하다.


- Sign-in providers

· 다양한 방법을 사용하여 Firebase App에 로그인 가능하다.

· 하나 이상의 sign-in 방식을 사용해서 user와 연결 가능

(ex: Google login or email address)


· Firebase User instance는 사용자와 연결된 모든 provider를 tracking 한다.

· 위와같은 방식으로 빈 profile 속성을 업데이트 가능


- Current user

ㆍuser가 sign-in 하거나 sign-up 하면 Auth instance의 current user가 된다.

ㆍFirebase Auth instance는 user state를 유지하므로, page를 refreshing 하거나 restarting 해도 정보가 손실되지 않는다.

ㆍuser가 sign out하면 Auth instance는 User object reference 유지를 중지하고 더이상 state를 유지하지 않는다.

ㆍCurrent user는 없는 상태가 되지만, User instance는 계속 사용 가능하다. -> reference를 유지하면 user data에 게속 access하고 update 가능하다.


- User lifecycle

ㆍFirebase Auth instance의 현재 state를 tracking 하는 권장 방법은 Listener (Observers)의 사용

ㆍAuth listener는 Auth object과 관련된 것이라면 언제든지 notified 해준다. (iOSAndroidweb).

ㆍNotified situations

1. Auth object의 초기화가 완료되고, user가 이전 session에서 이미 sign-in 했거나, identity의 sign-in flow에서 이미 redirection 되었다.


2. User sign-in

3. User sign-out

4. Current user의 access token이 refreshing

- access token이 만료

- user가 password 변경

- user가 re-authenticate


- Auth tokens

ㆍFirebase ID tokens

- user가 Firebase app에 sign-in 할 때 Firebase에 의해서 생성

- 기본 profile 정보 포함


ㆍIdentity provider tokens

- Google, Facebook 같은 federated providers에 의해서 생성

- Auth 2.0 access token이지만 다른 format일 수 있다.

- 해당 provider와 성공적으로 인증되었는지 확인한 다음 Firebase에서 사용할 수 있는 credential로 변환


ㆍFirebase custom tokens

- Custom Auth system에서 생성

- 성공적으로 인증되었는지 확인한 다음 Firebase에서 사용할 수 있는 credential로 변환

'Mobile > Firebase' 카테고리의 다른 글

170816(수) - Cloud Functions  (0) 2017.08.16
170816(수) - Firebase Cloud Messaging  (0) 2017.08.16
140816(수) - Firebase Analytics  (0) 2017.08.16
170814(월) - Start Firebase  (0) 2017.08.14

공유

댓글