yamoo9 / likelion-FEQA

질문/답변 — 프론트엔드 스쿨, 멋사
29 stars 9 forks source link

[LAB-11] Firebase 소셜로그인 (Feat.Google) #217

Closed 5wintaek closed 1 year ago

5wintaek commented 1 year ago

질문 작성자

오승택

문제 상황

안녕하세요 LAB11 오승택 입니다

API 문서를 보고 구글 로그인 버튼에 이벤트를 주어 로그인이 완성되게 기능을 구현하였습니다. 하지만 문제점이 있습니다.

  1. 사용자가 첫 Google 로그인 시도 후 다시 Google 로그인을 하였을 때 자동으로 로그인이 진행이됩니다. 해결했던방법 -> 캐시 및 쿠키를 지우고 난 후 다시 Google 로그인을 시도를 해봤는데 다시 자동으로 로그인이 됩니다.

123

  1. 사용자가 Google 버튼을 눌러 로그인을 완료한 후 firebase authentication 에 아이디와 비밀번호가 저장이 되지 않습니다. 혹시 이 문제는 useEffect를 사용하지 않아서 그런건가요 ?

image

image

프로젝트 저장소 URL

환경 정보

yamoo9 commented 1 year ago

답변 1. Firebase 인증은 기본적으로 지속됩니다.

사용자가 첫 Google 로그인 시도 후 다시 Google 로그인을 하였을 때 자동으로 로그인이 진행이됩니다.

Firebase는 기본적으로 웹 브라우저 윈도우가 닫혀도 인증 상태가 유지됩니다. 즉, 문제가 아닙니다. 🥹

인증 상태 지속성을 원하지 않을 경우, Firebase 인증 상태가 지속되는 방식을 지정할 수 있습니다. 로그인 한 사용자가 직접 로그아웃 할 때까지 로그인 상태를 유지할 지, 브라우저 윈도우가 닫힐 때 로그아웃 할 지 또는 페이지를 새로고침 하면 로그아웃 할 지 여부를 결정할 수 있습니다.

설정 방법은 제공한 학습 자료 Firebase 인증 지속성를 확인해 적용해보세요.

답변 2. 아이디 저장은 Firebase 인증과 관련이 없습니다.

사용자가 Google 버튼을 눌러 로그인을 완료한 후 firebase authentication 에 아이디와 비밀번호가 저장이 되지 않습니다. 혹시 이 문제는 useEffect를 사용하지 않아서 그런건가요 ?

Firebase 인증은 회원가입 또는 로그인 인증 과정에만 사용되며 인증 사용자의 고유 식별자(uid), 이메일(email)과 같은 정보를 제공합니다. 비밀번호와 같이 민감한 개인 정보는 Firebase 콘솔에서 확인할 수 없습니다. (보안 이슈)

그렇다면 회원 가입 시 제공 된 아이디(id), 사용자 이름(displayName)과 같은 정보는 어디에 저장해야 할까요? Firestore 데이터베이스에 저장되어야 합니다. 즉, 회원가입 인증 → 데이터베이스(사용자 정보)에 저장되어야 합니다.


수업 시간에 다룬 useCreateAuthUser 훅이 그러한 일을 수행합니다. 훅을 사용하는 대신 직접 "회원가입 인증 → 데이터베이스 저장"을 구현 하려면 useCreateAuthUser 내부 로직을 참고하세요.

레퍼런스

5wintaek commented 1 year ago

답변 감사합니다!!!!