기타

[Firebase] Google Login 시, 강제로 구글유저 선택 창이 뜨게 하는 방법

milliwonkim 2022. 6. 20. 09:04
반응형
SMALL

구글로그인을 하기 위해서 서비스에 구글 로그인 버튼을 추가했습니다.

async function handleLoginWithGoogle() {
    const provider = new GoogleAuthProvider()
    signInWithPopup(auth, provider)
      .then((result) => {
        const { user } = result;

        authStore.$patch({
          auth: user,
        });
        authUser.email = user.email as string;
        authUser.uid = user.uid;
        router.push(`/${DIARY}`);
      })
      .catch((error) => {
        // Handle Errors here.
        const errorCode = error.code;
        const errorMessage = error.message;

        console.log(errorCode, errorMessage);
      });
  }

 

구글 로그인 버튼을 누르면 새 창이 열리면서 그 후 두 가지 유형이 있습니다.

1. 이전에 로그인 했던 유저 하나로만 자동으로 로그인

2. 유저가 하나 초과일 경우, 유저 선택 모달이 열리고 로그인 할 유저 선택 가능하게 로그인

 

1번을 하나의 유저로만 로그인했어도, 2번처럼 유저선택 창이 열리게 하려면

async function handleLoginWithGoogle() {
	// 유저선택을 강제하기 위해서
    // setCustomParameters를 추가해야합니다.
    const provider = new GoogleAuthProvider().setCustomParameters({
      prompt: 'select_account',
    });
    signInWithPopup(auth, provider)
      .then((result) => {
        const { user } = result;

        authStore.$patch({
          auth: user,
        });
        authUser.email = user.email as string;
        authUser.uid = user.uid;
        router.push(`/${DIARY}`);
      })
      .catch((error) => {
        // Handle Errors here.
        const errorCode = error.code;
        const errorMessage = error.message;

        console.log(errorCode, errorMessage);
      });
  }
반응형
LIST