TIL

[ Firebase ] auth.authStateReady() 를 이용한 사용자 인증 상태 변화 감지하기

dev_gggimmmin 2024. 5. 28. 21:54
728x90

 

authStateReady() 함수는 Firebase Authentication에서 제공하는 비동기 함수로,

사용자의 인증 상태가 변할 때까지 기다렸다가 결과를 반환한다.

 

즉, 사용자가 로그인되어 있는지, 어떤 사용자가 로그인되어 있는지 확인하는데 사용된다.

 

이 함수는 프로미스를 반환하며, 프로미스가 성공적으로 해결되면 현재 로그인된 사용자에 대한 정보를 제공하고,

실패하면 오류를 반환해준다.

 


 

사용할 수 있는 방법 예시

 

✅ 사용자 맞춤형 UI 제공: 로그인 여부에 따라 UI를 다르게 표시하거나 기능을 제한해야 할 때

✅ 인증이 필요한 데이터 액세스: 인증되지 않은 사용자가 민감한 데이터에 액세스하지 못하게 제어할 때

✅ 실시간 사용자 상태 추척: 로그인, 로그아웃, 사용자 정보 변경 등 사용자 인증 상태 변화를 감지해야 하는 경우

 

await auth.authStateReady();

 

이 코드는 다음과 같은 단계를 수행하는데,

 

1. authStateReady() 함수를 호출해 프로미스를 생성한다.

2. await 키워드를 사용해 프로미스가 해결될 때까지 기다린다.

3. 프로미스가 해결되면 현재 로그인된 사용자에 대한 정보를 currentUser 속성에 저장한다.

4. currentUser 가 null이 아닌 경우, 사용자가 로그인 된 상태임을 의미하며, 

사용자의 정보를 활용해 원하는 작업을 수행할 수 있다.

5. currentUser 가 null인 경우, 사용자가 로그인되지 않은 상태임을 의미하며, 

로그인 페이지로 이동하거나 로그인 절차를 수행하도록 유도할 수 있다.

 


 

참고해야할 것

 

  • authStateReady() 함수는 비동기 함수이므로, await 키워드와 함께 사용해야 한다 !
  • authStateReady() 함수는 사용자 인증 상태가 변할 때마다 호출된다. 즉, 사용자가 로그인하거나 로그아웃하거나 사용자 정보를 변경할 때마다 함수가 호출되어 현재 사용자 상태를 반영한다.
  • currentUser 속성은 현재 로그인된 사용자에 대한 정보를 제공하는 객체이다. 이 객체에서는 사용자 ID, 이름, 이메일 주소 등 다양한 정보가 포함되어 있다.
728x90