이 페이지에서는 Firebase Authentication 사용과 관련된 자주 묻는 질문(FAQ)에 대한 답변과 문제 해결 도움말을 제공합니다. 원하는 내용을 찾을 수 없거나 추가 지원이 필요하면 Firebase 지원팀에 문의하세요.
어떠한 국가에서 전화 인증이 지원되나요?
Firebase Authentication에서는 전 세계에서 전화번호 인증을 지원하지만 네트워크에 따라서는 확인 메시지가 안정적으로 전달되지 않을 수 있습니다. 다음 지역은 전달률이 양호하여 전화 인증이 안정적으로 작동할 것으로 예상됩니다. 명시된 경우 일부 이동통신사는 전달 성공률이 낮아 특정 지역에서 사용할 수 없습니다.
| 리전 | 코드 |
|---|---|
| AD | 안도라 |
| AE | 아랍에미리트 |
| AF | 아프가니스탄 |
| AG | 앤티가 바부다 |
| AL | 알바니아 |
| AM | 아르메니아 |
| AO | 앙골라 |
| AR | 아르헨티나 |
| AS | 아메리칸 사모아 |
| AT | 오스트리아 |
| AU | 오스트레일리아 |
| AW | 아루바 |
| AZ | 아제르바이잔 |
| BA | 보스니아 헤르체고비나 |
| BB | 바베이도스 |
| BD | 방글라데시 |
| BE | 벨기에 |
| BF | 부르키나 파소 |
| BG | 불가리아 |
| BJ | 베냉 |
| BM | 버뮤다 |
| BN | 브루나이 |
| BO | 볼리비아 |
| BR | 브라질 |
| BS | 바하마 |
| BT | 부탄 |
| BW | 보츠와나 |
| BY | 벨라루스 |
| BZ | 벨리즈 |
| CA | 캐나다 |
| CD | 콩고(킨샤사) |
| CF | 중앙아프리카 공화국 |
| CG | 콩고(브라자빌) |
| CH | 스위스 |
| CI | 코트디부아르 |
| CK | 쿡 제도 |
| CL | 칠레 |
| CM | 카메룬 |
| CO | 콜롬비아 |
| CR | 코스타리카 |
| CV | 카보 베르데 |
| CW | 퀴라소 |
| CY | 키프로스 |
| CZ | 체코 |
| DE | 독일 |
| DJ | 지부티 |
| DK | 덴마크 |
| DM | 도미니카 |
| DO | 도미니카 공화국 |
| DZ | 알제리 |
| EC | 에콰도르 |
| EG | 이집트 |
| ES | 스페인 |
| ET | 에티오피아 |
| FI | 핀란드 |
| FJ | 피지 |
| FK | 포클랜드 제도(말비나스) |
| FM | 미크로네시아 연방 |
| FO | 페로 제도 |
| FR | 프랑스 |
| GA | 가봉 |
| GB | 영국 |
| GD | 그레나다 |
| GE | 조지아 |
| GF | 프랑스령 기아나 |
| GG | 건지 |
| GH | 가나 |
| GI | 지브롤터 |
| GL | 그린란드 |
| GM | 감비아 |
| GP | 과들루프 |
| GQ | 적도 기니 |
| GR | 그리스 |
| GT | 과테말라 |
| GY | 가이아나 |
| HK | 홍콩, 중국 특별행정구 |
| HN | 온두라스 |
| HR | 크로아티아 |
| HT | 아이티 |
| HU | 헝가리 |
| ID | 인도네시아 |
| IE | 아일랜드 |
| IL | 이스라엘 |
| IM | 맨 섬 |
| IN | 인도 |
| IQ | 이라크 |
| IT | 이탈리아 |
| JE | 저지 |
| JM | 자메이카 |
| JO | 요르단 |
| JP | 일본 |
| KE | 케냐 |
| KG | 키르기스스탄 |
| KH | 캄보디아 |
| KM | 코모로스 |
| KN | 세인트 키츠 네비스 |
| KR | 대한민국 |
| KW | 쿠웨이트 |
| KY | 케이맨 제도 |
| KZ | 카자흐스탄 |
| LA | 라오스 |
| LB | 레바논 |
| LC | 세인트 루시아 |
| LI | 리히텐슈타인 |
| LK | 스리랑카 |
| LS | 레소토 |
| LT | 리투아니아 |
| LU | 룩셈부르크 |
| LV | 라트비아 |
| LY | 리비아 |
| MA | 모로코 |
| MD | 몰도바 |
| ME | 몬테네그로 |
| MF | 생마르탱(프랑스령) |
| MG | 마다가스카르 |
| MK | 마케도니아 공화국 |
| MM | 미얀마 |
| MN | 몽골 |
| MO | 마카오, 중국 특별행정구 |
| MS | 몬트세랫 |
| MT | 몰타 |
| MU | 모리셔스 |
| MW | 말라위 |
| MX | 멕시코 |
| MY | 말레이시아 |
| MZ | 모잠비크 |
| NA | 나미비아 |
| NC | 뉴칼레도니아 |
| NE | 니제르 |
| NF | 노퍽 섬 |
| NG | 나이지리아 |
| NI | 니카라과 |
| NL | 네덜란드 |
| NO | 노르웨이 |
| NP | 네팔 |
| NZ | 뉴질랜드 |
| OM | 오만 |
| PA | 파나마 |
| PE | 페루 |
| PG | 파푸아 뉴기니 |
| PH | 필리핀 |
| PK | 파키스탄 |
| PL | 폴란드 |
| PM | 생피에르 미클롱 |
| PR | 푸에르토리코 |
| PS | 팔레스타인 자치정부 |
| PT | 포르투갈 |
| PY | 파라과이 |
| QA | 카타르 |
| RE | 레위니옹 |
| RO | 루마니아 |
| RS | 세르비아 |
| RU | 러시아 연방 |
| RW | 르완다 |
| SA | 사우디아라비아 |
| SC | 세이셸 |
| SE | 스웨덴 |
| SG | 싱가포르 |
| SH | 세인트 헬레나 |
| SI | 슬로베니아 |
| SK | 슬로바키아 |
| SL | 시에라리온 |
| SN | 세네갈 |
| SR | 수리남 |
| ST | 상투메프린시페 |
| SV | 엘살바도르 |
| SZ | 에스와티니 |
| TC | 터크스 케이커스 제도 |
| TG | 토고 |
| TH | 태국 |
| TL | 동티모르 |
| TM | 투르크메니스탄 |
| TO | 통가 |
| TR | 튀르키예 |
| TT | 트리니다드 토바고 |
| TW | 타이완, 중화민국 |
| TZ | 탄자니아 연합공화국 |
| UA | 우크라이나 |
| UG | 우간다 |
| US | 미국 |
| UY | 우루과이 |
| UZ | 우즈베키스탄 |
| VC | 세인트 빈센트 그레나딘 |
| VE | 베네수엘라(볼리바르 공화국) |
| VG | 영국령 버진아일랜드 |
| VI | 미국령 버진아일랜드 |
| VN | 베트남 |
| WS | 사모아 |
| YE | 예멘 |
| YT | 마요트 |
| ZA | 남아프리카 공화국 |
| ZM | 잠비아 |
| ZW | 짐바브웨 |
Spark 요금제의 무료 SMS는 어떻게 되었나요?
2024년 9월부터 전화 인증의 보안 및 서비스 품질을 개선하기 위해 Firebase 프로젝트를 Cloud Billing 계정에 연결해야 SMS 서비스를 사용 설정하고 사용할 수 있습니다.
전화 인증을 사용할 때 SMS 악용을 방지하려면 어떻게 해야 하나요?
SMS 트래픽 부풀리기 및 API 악용으로부터 프로젝트를 보호하려면 다음 단계를 따르세요.
SMS 리전 정책 설정 고려
-
전송된 SMS의 수가 매우 많고 확인된 SMS의 수가 매우 적거나 0인 지역을 찾습니다. 인증/전송 비율이 성공률입니다. SMS는 전송 보장 프로토콜이 아니며 일부 지역에서는 악용이 발생할 수 있으므로 정상적인 성공률은 일반적으로 70~85% 범위입니다. 성공률이 50% 미만인 경우 많은 SMS가 전송되었지만 로그인 성공은 낮다는 의미입니다. 이는 악의적인 행위자와 SMS 트래픽 부풀리기를 나타내는 일반적인 지표입니다.
SMS 리전 정책을 사용하여 성공률이 낮은 SMS 리전을 거부하거나, 앱이 특정 시장에만 배포되는 경우 특정 리전만 허용합니다.
승인된 인증 도메인 제한
인증 설정 대시보드를 사용하여 승인된 도메인을 관리합니다. 개발을 간소화하기 위해 localhost 도메인이 승인된 인증 도메인에 기본적으로 추가됩니다. 프로덕션 프로젝트의 승인된 도메인에서 localhost를 삭제하여 악의적인 행위자가 자신의 localhost에서 코드를 실행하여 프로덕션 프로젝트에 액세스하는 것을 방지하세요.
App Check 사용 설정 및 시행
App Check를 사용 설정하면 요청이 프로젝트와 연결된 애플리케이션에서만 온다는 것을 증명하여 프로젝트를 API 악용으로부터 보호할 수 있습니다.
Firebase Authentication에서 App Check을 사용하려면 Firebase Authentication with Identity Platform으로 업그레이드해야 합니다.
Firebase 콘솔에서 Authentication에 App Check를 적용해야 합니다. 적용하기 전에 트래픽 모니터링을 고려하세요. 또한 reCAPTCHA Enterprise 승인된 사이트 목록을 다시 확인하여 프로덕션 사이트만 포함되어 있고 App Check에서 프로젝트에 등록된 애플리케이션 목록이 올바른지 확인하세요.
App Check는 등록된 애플리케이션 중 하나에서 호출이 발생했다고 어설션함으로써 자동화된 공격으로부터 보호하는 데 도움이 됩니다. 사용자가 의도하지 않은 방식으로 앱을 사용하는 것을 방지하지는 않습니다 (예: 전송된 SMS를 생성하기 위해 로그인 흐름을 시작했다가 완료하지 않음).
새 이동통신사로 포팅한 전화번호가 전화 인증에서 지원되나요?
현재 이동통신사 간에 번호를 이동하면 해당 최종 사용자에게 모든 SMS를 전송할 수 없게 됩니다. 해결 방법은 없으며 Firebase에서 이 문제를 해결하기 위해 노력하고 있습니다.
Android 앱에 다음과 같은 오류가 표시되는 이유는 무엇인가요?
Google sign in failed
Google sign in failed다음과 같은 오류가 발생하면 이 FAQ의 문제 해결 단계를 따르세요.
GoogleFragment: Google sign in failed
com.google.android.gms.common.api.ApiException: 13: Unable to get token.
at
com.google.android.gms.internal.auth-api.zbay.getSignInCredentialFromIntent(com.google.android.gms:play-services-auth@@20.3.0:6)
인증 제공업체로 Google 로그인이 올바르게 사용 설정되어 있는지 확인합니다.
Firebase Console에서 Authentication 섹션을 엽니다.
로그인 방법 탭에서 Google 로그인 방법을 사용 중지했다가 다시 사용 설정합니다(이미 사용 설정된 경우도 포함).
Google 로그인 방법을 열고 사용 중지한 다음 저장을 클릭합니다.
Google 로그인 방법을 다시 열고 사용 설정한 다음 저장을 클릭합니다.
앱이 최신 Firebase 구성 파일(
google-services.json)을 사용하고 있는지 확인합니다.
앱의 구성 파일을 가져옵니다.오류가 계속 발생하는지 확인합니다. 오류가 계속 발생하면 다음 문제 해결 단계를 진행하세요.
필수 기본 OAuth 2.0 클라이언트가 있는지 확인합니다.
Apple 플랫폼 앱에 다음과 같은 오류가 표시되는 이유는 무엇인가요?
You must specify <clientID> in <GIDConfiguration>
You must specify <clientID> in <GIDConfiguration>다음과 같은 오류가 발생하면 이 FAQ의 문제 해결 단계를 따르세요.
You must specify |clientID| in |GIDConfiguration|
인증 제공업체로 Google 로그인이 올바르게 사용 설정되어 있는지 확인합니다.
Firebase Console에서 Authentication 섹션을 엽니다.
로그인 방법 탭에서 Google 로그인 방법을 사용 중지했다가 다시 사용 설정합니다(이미 사용 설정된 경우도 포함).
Google 로그인 방법을 열고 사용 중지한 다음 저장을 클릭합니다.
Google 로그인 방법을 다시 열고 사용 설정한 다음 저장을 클릭합니다.
앱이 최신 Firebase 구성 파일(
GoogleService-Info.plist)을 사용하고 있는지 확인합니다.
앱의 구성 파일을 가져옵니다.오류가 계속 발생하는지 확인합니다. 오류가 계속 발생하면 다음 문제 해결 단계를 진행하세요.
필수 기본 OAuth 2.0 클라이언트가 있는지 확인합니다.
웹 앱에 다음과 같은 오류가 표시되는 이유는 무엇인가요?
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
AuthErrorCode.INVALID_OAUTH_CLIENT_ID다음과 같은 오류가 발생하면 이 FAQ의 문제 해결 단계를 따르세요.
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
인증 제공업체로 Google 로그인이 올바르게 사용 설정되어 있는지 확인합니다.
Firebase Console에서 Authentication 섹션을 엽니다.
로그인 방법 탭에서 Google 로그인 방법을 사용 중지했다가 다시 사용 설정합니다(이미 사용 설정된 경우도 포함).
Google 로그인 방법을 열고 사용 중지한 다음 저장을 클릭합니다.
Google 로그인 방법을 다시 열고 사용 설정한 다음 저장을 클릭합니다.
또한 Authentication 섹션의 Google 로그인 제공업체 구성에서 OAuth 클라이언트 ID와 보안 비밀이 Google Cloud 콘솔의 사용자 인증 정보 페이지에 표시된 웹 클라이언트와 일치하는지 확인합니다(OAuth 2.0 클라이언트 ID 섹션 확인).
웹 앱에서 리디렉션을 통한 로그인이 실패하고 다음과 같은 오류가 발생하는 이유는 무엇인가요?
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operation
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operation다음과 같은 오류가 발생하면 이 FAQ의 문제 해결 단계를 따르세요.
This domain YOUR_REDIRECT_DOMAIN is not authorized to run this operation.
이 오류는 리디렉션 도메인이 Firebase Authentication의 승인된 도메인으로 나열되지 않거나 Firebase Authentication 서비스에 사용하는 API 키가 유효하지 않기 때문에 발생할 가능성이 큽니다.
먼저 YOUR_REDIRECT_DOMAIN이 Firebase 프로젝트의 승인된 도메인 목록에 있는지 확인합니다. 리디렉션 도메인이 이미 나열되어 있으면 잘못된 API 키 문제를 계속 해결하세요.
기본적으로 Firebase Authentication JS SDK는 Browser key로 라벨이 지정된 Firebase 프로젝트의 API 키를 사용하며 이 키를 사용하여 승인된 도메인 목록에 따라 로그인 리디렉션 URL이 유효한지 확인합니다.
Authentication은 Authentication SDK에 액세스하는 방법에 따라 이 API 키를 가져옵니다.
Hosting에서 제공하는 인증 도우미를 사용하여 Authentication JS SDK로 사용자를 로그인하는 경우 Firebase는 Firebase Hosting에 배포할 때마다 나머지 Firebase 구성과 함께 API 키를 자동으로 가져옵니다. 웹 앱
firebaseConfig의authDomain이 해당 Hosting 사이트의 도메인 중 하나를 사용하도록 올바르게 구성되어 있는지 확인합니다.https://authDomain__/firebase/init.json으로 이동하여firebaseConfig의projectId와 일치하는지 확인하면 됩니다.로그인 코드를 자체 호스팅하는 경우
__/firebase/init.json파일을 사용하여 자체 호스팅된 Authentication JS SDK 리디렉션 도우미에 Firebase 구성을 제공할 수 있습니다. 이 구성 파일에 나열된 API 키와projectId는 웹 앱firebaseConfig와 일치해야 합니다.
이 API 키가 삭제되지 않았는지 확인합니다. Google Cloud 콘솔의 API 및 서비스 > 사용자 인증 정보 패널로 이동하여 프로젝트의 모든 API 키가 나열되는지 확인합니다.
Browser key가 삭제되지 않은 경우 다음을 확인하세요.Firebase Authentication API가 키가 액세스할 수 있는 허용된 API 목록에 있는지 확인합니다(API 키의 API 제한사항 자세히 알아보기).
로그인 코드를 자체 호스팅하는 경우
__/firebase/init.json파일에 나열된 API 키가 Google Cloud 콘솔의 API 키와 일치하는지 확인합니다. 필요한 경우 파일의 키를 수정한 다음 앱을 다시 배포합니다.Browser key가 삭제된 경우 Firebase에서 새 API 키를 생성하도록 할 수 있습니다. Firebase 콘솔에서settings > 프로젝트 설정 으로 이동한 다음 내 앱 섹션에서 웹 앱을 클릭합니다. 이 작업은 웹 앱의 SDK 설정 및 구성 섹션에 표시되는 API 키를 자동으로 만듭니다.
Google Cloud 콘솔에서는 이 새 API 키가
Browser key가 아닌 Firebase 웹 앱의 닉네임과 동일한 이름으로 표시됩니다. 이 새 API 키에 API 제한사항을 추가하려면 Firebase Authentication API가 허용된 API 목록에 있는지 확인합니다.새 API 키가 생성되면 아래에서 해당하는 단계를 완료합니다.
예약된 Hosting URL을 사용하는 경우 앱을 Firebase에 다시 배포하여 나머지 Firebase 구성과 함께 새 API 키를 자동으로 가져올 수 있도록 합니다.
로그인 코드를 자체 호스팅하는 경우 새 API 키를 복사하여
__/firebase/init.json파일에 추가한 다음 앱을 다시 배포합니다.
OAuth 웹 클라이언트를 수동으로 구성하려면 어떻게 해야 하나요?
Google Cloud 콘솔의 사용자 인증 정보 페이지를 엽니다.
페이지 상단에서 사용자 인증 정보 만들기 > OAuth 클라이언트 ID를 선택합니다.
동의 화면을 구성하라는 메시지가 표시되면 화면에 표시된 안내를 따른 후 이 FAQ의 다음 단계를 계속 진행합니다.
OAuth 웹 클라이언트를 만듭니다.
애플리케이션 유형으로 웹 애플리케이션을 선택합니다.
승인된 자바스크립트 원본에 다음을 추가합니다.
http://localhosthttp://localhost:5000https://PROJECT_ID.firebaseapp.comhttps://PROJECT_ID.web.app
승인된 리디렉션 URI에 다음을 추가합니다.
https://PROJECT_ID.firebaseapp.com/__/auth/handlerhttps://PROJECT_ID.web.app/__/auth/handler
OAuth 클라이언트를 저장합니다.
새 OAuth 클라이언트 ID와 클라이언트 보안 비밀번호를 클립보드에 복사합니다.
Firebase Console에서 Authentication 섹션을 엽니다.
로그인 방법 탭에서 Google 로그인 제공업체를 연 다음 Google Cloud 콘솔에서 방금 구성 및 복사한 웹 서버 클라이언트 ID와 보안 비밀을 붙여넣습니다. 저장을 클릭합니다.
사용자가 이메일 주소와 비밀번호를 사용해 가입할 때 전송될 수 있는 확인 이메일의 이메일 템플릿에 대해 %APP_NAME%이 어떻게 결정되나요?
2022년 12월 이전에는 Firebase 프로젝트에 Android 프로젝트를 등록할 때마다 자동으로 프로비저닝된 OAuth 브랜드 이름으로 이메일 템플릿의 %APP_NAME%이 입력되었습니다. 이제 OAuth 브랜드가 Google 로그인이 사용 설정된 경우에만 프로비저닝되므로 다음에서는 %APP_NAME%을 결정하는 방법을 설명합니다.
OAuth 브랜드 이름을 사용할 수 있는 경우 이메일 템플릿의
%APP_NAME%이 OAuth 브랜드 이름이 됩니다(2022년 12월 이전 동작과 동일).OAuth 브랜드 이름을 사용할 수 없는 경우 이메일 템플릿의
%APP_NAME%은 다음과 같이 결정됩니다.웹 앱의 경우
%APP_NAME%은 기본 Firebase Hosting 사이트 이름(.firebaseapp.com및.web.app앞의 값이며 일반적으로 Firebase 프로젝트 ID)이 됩니다.모바일 앱의 경우:
요청에 Android 패키지 이름 또는 iOS 번들 ID가 있는 경우
%APP_NAME%은 Play 스토어 또는 App Store에서 각각 사용되는 앱 이름입니다.그렇지 않으면
%APP_NAME%은 기본 Firebase Hosting 사이트 이름(.firebaseapp.com및.web.app앞의 값이며 일반적으로 Firebase 프로젝트 ID)이 됩니다.
기본 Firebase Hosting 사이트 이름을 조회할 수 없는 경우 마지막 대체는 Firebase 프로젝트 ID를
%APP_NAME%으로 사용하는 것입니다.