Firebase Authentication ( 파이어베이스 인증) 구현하기
Android/Firebase

Firebase Authentication ( 파이어베이스 인증) 구현하기

728x90
반응형

세계최고 보안

사용자를 식별하기위한 기능제공.

사용자를 식별할 수 있게되면 각각의 규칙을 별도로 정할수 있다.

변경된 데이터를 줄일 수 있는 기능 제공(모바일에서 로그인, 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

이메일 계정과 관련된 이메일 주소입니다.

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

로 가면 인증 식별자로

방금전 가입한 이메일주소가 있는것을 보실 수 있습니다.

 

 

 

 

 

 

 

 

 

728x90
반응형