728x90
🔥Firebase 인증 오류: "auth/invalid-credential" 문제 해결 방법
로그인 오류에서 계속 default 로 설정한 오류 메세지만 나오는 이슈를 발견했다...
case에 따라 오류메세지가 다르게 나와야하는데... error를 찍으면 "auth/wrong-password" 또는 "auth/user-not-found" 오류 대신 "auth/invalid-credential"만 나온다..
const onSubmit = async (data: FormData) => {
try {
await signInWithEmailAndPassword(auth, data.email, data.password)
alert('로그인 성공!')
router.push('/main')
} catch (error) {
console.error(error)
if (error instanceof FirebaseError) {
switch (error.code) {
case 'auth/user-not-found':
alert('사용자가 없습니다. 회원가입을 진행해 주세요.')
router.push('/signup')
break
case 'auth/wrong-password':
alert('비밀번호가 틀렸습니다.')
break
default:
alert('알 수 없는 오류가 발생했습니다. 다시 시도해주세요.')
console.error('Firebase Error:', error)
console.error('Error Code:', (error as FirebaseError).code)
}
} else {
alert('알 수 없는 오류가 발생했습니다. 다시 시도해주세요.')
}
}
}
이메일 열거 보호(Email Enumeration Protection) 기능이 활성화된 경우에 발생한다...!
❓이메일 열거 보호
Firebase에서 이메일 열거 보호는 보안 강화 기능으로, 인증 시스템이 잘못된 이메일 또는 비밀번호를 입력했을 때 구체적인 오류 메시지 대신 일반적인 오류 메시지를 반환한다. 이로 인해 공격자가 이메일 존재 여부를 추측할 수 없게 된다.
하지만 개발 중에는 정확한 에러 코드를 확인해야 하기 때문에 보호를 비활성화 해줘야 한다!
https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection
내 프로젝트 설정에 들어가 이메일 열거 보호 체크를 해제해주면 해결된다 🙂
'👊🏻에러 일지' 카테고리의 다른 글
ReferenceError: document is not defined (feat. Next.js + lottie) (0) | 2024.08.14 |
---|---|
CORS 오류 해결하기 (0) | 2024.06.03 |
Parsing error: Cannot find module 'next/babel' (0) | 2024.05.27 |