세계최고 보안
사용자를 식별하기위한 기능제공.
사용자를 식별할 수 있게되면 각각의 규칙을 별도로 정할수 있다.
변경된 데이터를 줄일 수 있는 기능 제공(모바일에서 로그인, PC에서 로그인)
사용자가 인증되면 JSON 웹토큰에는provider , uid, firebase 인증id가 포함된다.
provider : email/password, Google Sign In, or Facebook Login 등..
uid: 고유한 사용자 ID로 Google 로 인증한사람과 Facebook으로 인증한사람이 겹칠 수 없음.
Firebase 인증 ID: web 토큰으로써 다음과 같은 많은 정보를 포함하고있음.
Data |
Description |
|
이메일 계정과 관련된 이메일 주소입니다. |
email_verified |
사용자가 이메일 주소에 대한 액세스 권한이 있음을 확인한 경우 true 인 부울입니다. 일부 제공 업체는 이메일 주소를 자동으로 확인합니다. iOS에서 이메일 / 비밀번호에 대한 이메일 확인을 포함하도록 인증을 사용자 정의 할 수 있습니다. |
name |
사용자의 표시 이름 (설정된 경우)입니다. |
sub |
사용자의 Firebase uID입니다. |
firebase.identities |
해당 사용자의 계정과 관련된 모든 ID의 Dictionary 입니다. |
firebase.sign_in_provider |
이 Firebase 인증 ID 토큰을 얻는 데 사용되는 로그인 제공 업체입니다. |
* Advanced rule
일부 사용자에게 관리 액세스 권한을 부여(예 : 특정 유료고객/혹은 사용횟수 **이상인 고객에게만 비공개채팅방에 대한 접근권한부여)
- 디펜던시 추가
- 인증상태가 변경될때 (로그인 아웃될때) 호출되는 리스너 생성
- 사용자가 로그인 안햇을때 로그인하도록 리다이렉션 하는 기능 추가
- 사용자가 로그인했는지 여부를 감지하는기능 추가
->>> 그에따라 UI가 바뀐다 (사용자가 로그인하면 해당 realtimedb에 저장되어있는 사용자의 이름에 접근할수있음, 그래서 사용자 이름을 읽어와 UI에 표시-> 6다시말해 사용자가 로그인 한 후에만 database 읽기 리스너에 연결함. 인증되지 않는 사용자은 읽을 권한이 없기때문. 또한 로그아웃하면 데이터베이스 리스너를 분리하고 메시지(이름 등)를 지운다.
콘솔에서
Authentication > Sign-in-method 텝으로 들어갑니다.
그러면 파이어베이스를 통해 로그인이 가능한 업체들이 쭉 나오게 되는데
저는 그중 이메일과 계정과 구글로 로그인이 가등하도록 설정했습니다.
다음과 같이 원하는 업체를 누르고 저장 만 누르면 사용이 가능합니다.
구글의 경우 지원자의 이메일 주소를써야하기때문에 저의 지메일 주소를 적었습니다.
간단한 설정이 끝나면 로그인 제공업체 목록 '상태'가 '사용 설정됨'으로 바뀐것을 보실 수 있습니다.
이제 구현한 앱으로돌아가서
로그인을 해줍니다
비밀번호
이메일로 로그인을 누르고 로그인할 이메일계정을 입력했습니다.
해당 이메일로 로그인한 적이 없기때문에 자동으로 가입화면으로 넘어가게되고
이름과 비밀번호를 입력하면 로그인 완료!
다시 콘솔창으로 가서
Authentication>Users
로 가면 인증 식별자로
방금전 가입한 이메일주소가 있는것을 보실 수 있습니다.
'Android > Firebase' 카테고리의 다른 글
Firebase Remote Config(파이어베이스 원격 구성) 구현하기 (0) | 2021.04.08 |
---|---|
Firebase Cloud Messaging : FCM(파이어베이스 클라우드 메시지) 구현하기 (0) | 2021.04.08 |
Firebase Crashlytics (파이어베이스 크래시리틱스) 구현하기 (0) | 2021.04.08 |
Firebase Cloud storage (파이어베이스 클라우드 저장소) 구현하기 (0) | 2021.04.08 |
firebase 시작하기 (docs) (0) | 2020.11.21 |