Firebase 인증 REST API

API 사용량

REST API를 통해 Firebase 인증 백엔드를 쿼리할 수 있습니다. 이는 Kubernetes와 같은 다양한 작업에 신규 사용자 생성, 기존 사용자 로그인, 해당 사용자 수정 또는 삭제 등의 작업을 수행합니다.

이 문서에서 API_KEY는 웹 API 키를 가리킵니다. 이는 프로젝트 설정 페이지로 이동합니다.

<ph type="x-smartling-placeholder">

커스텀 토큰을 ID와 갱신 토큰으로 교환

인증 verifyCustomToken 엔드포인트에 HTTP POST 요청을 실행하여 커스텀 인증 토큰을 ID 및 갱신 토큰으로 교환할 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
token 문자열 ID 및 갱신 토큰 쌍을 만들 Firebase 인증 맞춤 토큰입니다.
returnSecureToken 부울 ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다.
응답 페이로드
속성 이름 유형 설명
idToken 문자열 제공된 커스텀 토큰에서 생성된 Firebase 인증 ID 토큰입니다.
refreshToken 문자열 제공된 커스텀 토큰에서 생성된 Firebase 인증 갱신 토큰입니다.
expiresIn 문자열 ID 토큰이 만료될 때까지 남은 시간(초)입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"token":"[CUSTOM_TOKEN]","returnSecureToken":true}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에 연결된 Firebase ID 토큰 및 갱신 토큰이 포함됩니다. 커스텀 토큰으로 교체합니다.

샘플 응답

{
  "idToken": "[ID_TOKEN]",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600"
}

일반적인 오류 코드

  • INVALID_CUSTOM_TOKEN: 커스텀 토큰 형식이 잘못되었거나 어떠한 이유로 유효하지 않은 토큰입니다(예: 만료된 토큰, 잘못된 서명 등).
  • CREDENTIAL_MISMATCH: 맞춤 토큰이 다른 Firebase 프로젝트에 해당합니다.

갱신 토큰을 ID 토큰으로 교환

HTTP를 실행하여 Firebase ID 토큰을 갱신할 수 있습니다. securetoken.googleapis.com 엔드포인트에 대한 POST 요청

<ph type="x-smartling-placeholder">

메서드: POST

콘텐츠 유형: application/x-www-form-urlencoded

엔드포인트
https://securetoken.googleapis.com/v1/token?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
grant_type 문자열 갱신 토큰의 부여 유형으로, 항상 'refresh_token'입니다.
refresh_token 문자열 Firebase 인증 갱신 토큰입니다.
응답 페이로드
속성 이름 유형 설명
expires_in 문자열 ID 토큰이 만료될 때까지 남은 시간(초)입니다.
token_type 문자열 갱신 토큰의 유형으로, 항상 'Bearer'입니다.
refresh_token 문자열 요청에 제공된 Firebase 인증 갱신 토큰 또는 새 갱신 토큰입니다.
id_token 문자열 Firebase 인증 ID 토큰입니다.
user_id 문자열 제공된 ID 토큰에 해당하는 uid
project_id 문자열 Firebase 프로젝트 ID입니다.

샘플 요청

curl 'https://securetoken.googleapis.com/v1/token?key=[API_KEY]' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data 'grant_type=refresh_token&refresh_token=[REFRESH_TOKEN]'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에 새 Firebase ID 토큰과 갱신 토큰이 포함됩니다.

샘플 응답

{
  "expires_in": "3600",
  "token_type": "Bearer",
  "refresh_token": "[REFRESH_TOKEN]",
  "id_token": "[ID_TOKEN]",
  "user_id": "tRcfmLH7o2XrNELi...",
  "project_id": "1234567890"
}

일반적인 오류 코드

  • TOKEN_EXPIRED: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
  • USER_DISABLED: 관리자가 사용자 계정을 사용 중지했습니다.
  • USER_NOT_FOUND: 갱신 토큰에 해당하는 사용자를 찾을 수 없습니다. 사용자가 삭제되었을 수 있습니다.
  • API 키가 올바르지 않습니다. 유효한 API 키를 전달하세요. (잘못된 API 키 제공)
  • INVALID_REFRESH_TOKEN: 잘못된 갱신 토큰이 제공됩니다.
  • 잘못된 JSON 페이로드가 수신되었습니다. 알 수 없는 이름 \"refresh_tokens \": 쿼리 매개변수를 결합할 수 없습니다. 요청 메시지에서 'refresh_tokens' 필드를 찾을 수 없습니다.
  • INVALID_GRANT_TYPE: 지정된 부여 유형이 잘못되었습니다.
  • MISSING_REFRESH_TOKEN: 갱신 토큰이 제공되지 않았습니다.
  • PROJECT_NUMBER_MISMATCH: 갱신 토큰의 프로젝트 번호가 제공된 API 키의 프로젝트 번호와 일치하지 않습니다.

이메일 / 비밀번호로 가입

인증 signupNewUser 엔드포인트에 HTTP POST 요청을 실행하여 새 이메일 및 비밀번호 사용자를 만들 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
이메일 문자열 사용자가 생성할 이메일입니다.
비밀번호 문자열 사용자가 생성할 비밀번호입니다.
returnSecureToken 부울 ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다.
응답 페이로드
속성 이름 유형 설명
idToken 문자열 새로 생성된 사용자의 Firebase 인증 ID 토큰입니다.
이메일 문자열 새로 생성된 사용자의 이메일입니다.
refreshToken 문자열 새로 생성된 사용자의 Firebase 인증 갱신 토큰입니다.
expiresIn 문자열 ID 토큰이 만료될 때까지 남은 시간(초)입니다.
localId 문자열 새로 생성된 사용자의 uid입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"email":"[user@example.com]","password":"[PASSWORD]","returnSecureToken":true}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에 연결된 Firebase ID 토큰 및 갱신 토큰이 포함됩니다. 새 계정으로 로그인합니다.

샘플 응답

{
  "idToken": "[ID_TOKEN]",
  "email": "[user@example.com]",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "localId": "tRcfmLH7..."
}

일반적인 오류 코드

  • EMAIL_EXISTS: 이메일 주소가 다른 계정에서 이미 사용 중입니다.
  • OPERATION_NOT_ALLOWED: 이 프로젝트에서 비밀번호 로그인이 사용 중지되었습니다.
  • TOO_MANY_ATTEMPTS_TRY_LATER: 비정상적인 활동으로 인해 이 기기의 모든 요청이 차단되었습니다. 나중에 다시 시도하세요.

이메일 / 비밀번호로 로그인

인증 verifyPassword 엔드포인트에 HTTP POST 요청을 실행하여 이메일과 비밀번호로 사용자를 로그인할 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
이메일 문자열 사용자가 로그인할 때 사용하는 이메일입니다.
비밀번호 문자열 계정 비밀번호입니다.
returnSecureToken 부울 ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다.
응답 페이로드
속성 이름 유형 설명
idToken 문자열 인증된 사용자의 Firebase 인증 ID 토큰입니다.
이메일 문자열 인증된 사용자의 이메일입니다.
refreshToken 문자열 인증된 사용자의 Firebase 인증 갱신 토큰입니다.
expiresIn 문자열 ID 토큰이 만료될 때까지 남은 시간(초)입니다.
localId 문자열 인증된 사용자의 uid입니다.
registered 부울 이메일이 기존 계정용인지 여부입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"email":"[user@example.com]","password":"[PASSWORD]","returnSecureToken":true}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에 연결된 Firebase ID 토큰 및 갱신 토큰이 포함됩니다. 기존 이메일/비밀번호 계정으로 로그인

샘플 응답

{
  "localId": "ZY1rJK0eYLg...",
  "email": "[user@example.com]",
  "displayName": "",
  "idToken": "[ID_TOKEN]",
  "registered": true,
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600"
}

일반적인 오류 코드

  • EMAIL_NOT_FOUND: 이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.
  • INVALID_PASSWORD: 비밀번호가 잘못되었거나 사용자에게 비밀번호가 없습니다.
  • USER_DISABLED: 관리자가 사용자 계정을 사용 중지했습니다.

익명으로 로그인

인증 요청 signupNewUser 엔드포인트에 HTTP POST 요청을 실행하여 익명으로 사용자를 로그인할 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
returnSecureToken 부울 ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다.
응답 페이로드
속성 이름 유형 설명
idToken 문자열 새로 생성된 사용자의 Firebase 인증 ID 토큰입니다.
이메일 문자열 사용자가 익명이므로 이 값은 비어 있어야 합니다.
refreshToken 문자열 새로 생성된 사용자의 Firebase 인증 갱신 토큰입니다.
expiresIn 문자열 ID 토큰이 만료될 때까지 남은 시간(초)입니다.
localId 문자열 새로 생성된 사용자의 uid입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"returnSecureToken":true}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에 연결된 Firebase ID 토큰 및 갱신 토큰이 포함됩니다. 익명 사용자와 공유하게 됩니다.

샘플 응답

{
  "idToken": "[ID_TOKEN]",
  "email": "",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "localId": "Jws4SVjpT..."
}

일반적인 오류 코드

  • OPERATION_NOT_ALLOWED: 이 프로젝트에 대한 익명 사용자 로그인이 사용 중지되어 있습니다.

OAuth 사용자 인증 정보로 로그인

인증 verifyAssertion 엔드포인트에 HTTP POST 요청을 실행하여 OAuth 사용자 인증 정보로 사용자를 로그인할 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
requestUri 문자열 IDP가 사용자를 다시 리디렉션하는 URI입니다.
postBody 문자열 OAuth 사용자 인증 정보(ID 토큰 또는 액세스 토큰) 및 사용자 인증 정보를 발급하는 공급업체 ID를 포함합니다.
returnSecureToken 부울 ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다.
returnIdpCredential 부울 FEDERATED_USER_ID_ALREADY_LINKED 및 EMAIL_EXISTS 오류에 대해 OAuth 사용자 인증 정보 반환을 강제할지 여부입니다.
응답 페이로드
속성 이름 유형 설명
federatedId 문자열 고유 ID는 IdP 계정을 식별합니다.
providerId 문자열 연결된 공급업체 ID(예: Google 공급업체의 경우 'google.com')입니다.
localId 문자열 인증된 사용자의 uid입니다.
emailVerified 부울 로그인 이메일 인증 여부입니다.
이메일 문자열 계정 이메일입니다.
oauthIdToken 문자열 OIDC ID 토큰(있는 경우)입니다.
oauthAccessToken 문자열 OAuth 액세스 토큰(있는 경우)입니다.
oauthTokenSecret 문자열 OAuth 1.0 토큰 보안 비밀(있는 경우)입니다.
rawUserInfo 문자열 제공된 OAuth 사용자 인증 정보에 해당하는 모든 IdP 데이터가 포함된 문자열화된 JSON 응답입니다.
firstName 문자열 계정의 성을 제외한 이름입니다.
lastName 문자열 계정의 성입니다.
fullName 문자열 계정의 전체 이름입니다.
displayName 문자열 계정의 표시 이름입니다.
photoUrl 문자열 계정의 사진 URL입니다.
idToken 문자열 인증된 사용자의 Firebase 인증 ID 토큰입니다.
refreshToken 문자열 인증된 사용자의 Firebase 인증 갱신 토큰입니다.
expiresIn 문자열 ID 토큰이 만료될 때까지 남은 시간(초)입니다.
needConfirmation 부울 동일한 사용자 인증 정보로 다른 계정이 이미 존재하는지 여부입니다. 사용자는 원래 계정에 로그인한 후 현재 사용자 인증 정보를 해당 계정에 연결해야 합니다.

OAuth ID 토큰이 포함된 샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에 연결된 Firebase ID 토큰 및 갱신 토큰이 포함됩니다. 확인할 수 있습니다

OAuth ID 토큰이 포함된 샘플 응답

{
  "federatedId": "https://accounts.google.com/1234567890",
  "providerId": "google.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "user@example.com",
  "oauthIdToken": "[GOOGLE_ID_TOKEN]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}"
}

OAuth 액세스 토큰이 포함된 샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"access_token=[FACEBOOK_ACCESS_TOKEN]&providerId=[facebook.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에 연결된 Firebase ID 토큰 및 갱신 토큰이 포함됩니다. 확인할 수 있습니다

OAuth 액세스 토큰이 포함된 샘플 응답

{
  "federatedId": "http://facebook.com/1234567890",
  "providerId": "facebook.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "user@example.com",
  "oauthAccessToken": "[FACEBOOK_ACCESS_TOKEN]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "https://scontent.xx.fbcdn.net/v/...",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}"
}

Twitter OAuth 1.0 사용자 인증 정보가 포함된 샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"access_token=[TWITTER_ACCESS_TOKEN]&oauth_token_secret=[TWITTER_TOKEN_SECRET]&providerId=[twitter.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에 연결된 Firebase ID 토큰 및 갱신 토큰이 포함됩니다. 확인할 수 있습니다

Twitter OAuth 1.0 사용자 인증 정보가 포함된 샘플 응답

{
  "federatedId": "http://twitter.com/1234567890",
  "providerId": "twitter.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "user@example.com",
  "oauthAccessToken": "[OAUTH_ACCESS_TOKEN]",
  "oauthTokenSecret": "[OAUTH_TOKEN_SECRET]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "http://abs.twimg.com/sticky/...",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}"
}

일반적인 오류 코드

  • OPERATION_NOT_ALLOWED: 이 프로젝트에서 해당 공급업체가 사용 중지되었습니다.
  • INVALID_IDP_RESPONSE: 제공된 인증 사용자 인증 정보가 잘못되었거나 만료되었습니다.

이메일 공급업체 가져오기

인증 createAuthUri 엔드포인트에 HTTP POST 요청을 실행하여 지정된 이메일과 연결된 모든 공급업체를 확인할 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
identifier 문자열 사용자의 이메일 주소
continueUri 문자열 IDP가 사용자를 다시 리디렉션하는 URI입니다. 이 사용 사례에서는 현재 URL입니다.
응답 페이로드
속성 이름 유형 설명
allProviders 문자열 목록 사용자가 이전에 로그인한 공급업체의 목록입니다.
registered 부울 이메일이 기존 계정용인지 여부입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"identifier":"[user@example.com]","continueUri":"[http://localhost:8080/app]"}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 이메일과 연결된 공급업체 목록이 포함됩니다.

샘플 응답

{
  "allProviders": [
    "password",
    "google.com"
  ],
  "registered": true
}

일반적인 오류 코드

  • INVALID_EMAIL: 이메일 주소의 형식이 잘못되었습니다.

비밀번호 재설정 이메일 보내기

인증 getOobConfirmationCode 엔드포인트에 HTTP POST 요청을 실행하여 비밀번호 재설정 이메일을 보낼 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
드림 선택적 헤더
속성 이름 설명
X-Firebase-Locale 사용자 언어에 해당하는 언어 코드. 이를 통과하면 사용자에게 전송된 비밀번호 재설정 이메일이 현지화됩니다.
요청 본문 페이로드
속성 이름 유형 설명
requestType 문자열 반환할 OOB 코드의 종류. 비밀번호를 재설정하려면 'PASSWORD_RESET'이어야 합니다.
이메일 문자열 사용자의 이메일 주소
응답 페이로드
속성 이름 유형 설명
이메일 문자열 사용자의 이메일 주소

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"requestType":"PASSWORD_RESET","email":"[user@example.com]"}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다.

샘플 응답

{
 "email": "[user@example.com]"
}

일반적인 오류 코드

  • EMAIL_NOT_FOUND: 이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.

비밀번호 재설정 코드 확인

Auth resetPassword 엔드포인트에 HTTP POST 요청을 실행하여 비밀번호 재설정 코드를 확인할 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
oobCode 문자열 비밀번호 재설정을 위해 사용자의 이메일로 전송된 이메일 작업 코드
응답 페이로드
속성 이름 유형 설명
이메일 문자열 사용자의 이메일 주소
requestType 문자열 이메일 작업 코드의 유형. 'PASSWORD_RESET'이어야 합니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]"}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다.

샘플 응답

{
  "email": "[user@example.com]",
  "requestType": "PASSWORD_RESET"
}

일반적인 오류 코드

  • OPERATION_NOT_ALLOWED: 이 프로젝트에서 비밀번호 로그인이 사용 중지되었습니다.
  • EXPIRED_OOB_CODE: 작업 코드가 만료되었습니다.
  • INVALID_OOB_CODE: 작업 코드가 잘못되었습니다. 코드 형식 잘못되었거나 만료되었거나 이미 사용된 경우에 발생할 수 있습니다.

비밀번호 재설정 확인

인증 resetPassword 엔드포인트에 HTTP POST 요청을 실행하여 비밀번호 재설정 변경을 적용할 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
oobCode 문자열 비밀번호 재설정을 위해 사용자의 이메일로 전송된 이메일 작업 코드
newPassword 문자열 사용자의 새 비밀번호
응답 페이로드
속성 이름 유형 설명
이메일 문자열 사용자의 이메일 주소
requestType 문자열 이메일 작업 코드의 유형. 'PASSWORD_RESET'이어야 합니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"oobCode":"[PASSWORD_RESET_CODE]","newPassword":"[NEW_PASSWORD]"}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다.

샘플 응답

{
  "email": "[user@example.com]",
  "requestType": "PASSWORD_RESET"
}

일반적인 오류 코드

  • OPERATION_NOT_ALLOWED: 이 프로젝트에서 비밀번호 로그인이 사용 중지되었습니다.
  • EXPIRED_OOB_CODE: 작업 코드가 만료되었습니다.
  • INVALID_OOB_CODE: 작업 코드가 잘못되었습니다. 코드 형식 잘못되었거나 만료되었거나 이미 사용된 경우에 발생할 수 있습니다.
  • USER_DISABLED: 관리자가 사용자 계정을 사용 중지했습니다.

이메일 변경

인증 setAccountInfo 엔드포인트에 HTTP POST 요청을 실행하여 사용자의 이메일을 변경할 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
드림 선택적 헤더
속성 이름 설명
X-Firebase-Locale 사용자 언어에 해당하는 언어 코드. 이를 전달하면 사용자에게 전송되는 이메일 변경 취소가 현지화됩니다.
요청 본문 페이로드
속성 이름 유형 설명
idToken 문자열 사용자의 Firebase 인증 ID 토큰입니다.
이메일 문자열 사용자의 새 이메일
returnSecureToken 부울 ID 및 갱신 토큰 반환 여부입니다.
응답 페이로드
속성 이름 유형 설명
localId 문자열 현재 사용자의 uid입니다.
이메일 문자열 사용자의 이메일 주소
passwordHash 문자열 비밀번호의 해시 버전입니다.
providerUserInfo JSON 객체 목록 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다.
idToken 문자열 사용자의 새 Firebase 인증 ID 토큰입니다.
refreshToken 문자열 Firebase 인증 갱신 토큰입니다.
expiresIn 문자열 ID 토큰이 만료될 때까지 남은 시간(초)입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary \
'{"idToken":"[FIREBASE_ID_TOKEN]","email":"[user@example2.com]","returnSecureToken":true}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에 연결된 새 Firebase ID 토큰 및 갱신 토큰이 포함됩니다. .

샘플 응답

{
  "localId": "tRcfmLH7o2...",
  "email": "[user@example2.com]",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "[user@example2.com]"
    }
  ],
  "idToken": "[NEW_ID_TOKEN]",
  "refreshToken": "[NEW_REFRESH_TOKEN]",
  "expiresIn": "3600"
}

일반적인 오류 코드

  • EMAIL_EXISTS: 이메일 주소가 다른 계정에서 이미 사용 중입니다.
  • INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.

비밀번호 변경

인증 setAccountInfo 엔드포인트에 HTTP POST 요청을 실행하여 사용자의 비밀번호를 변경할 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
idToken 문자열 사용자의 Firebase 인증 ID 토큰입니다.
비밀번호 문자열 사용자의 새 비밀번호
returnSecureToken 부울 ID 및 갱신 토큰 반환 여부입니다.
응답 페이로드
속성 이름 유형 설명
localId 문자열 현재 사용자의 uid입니다.
이메일 문자열 사용자의 이메일 주소
passwordHash 문자열 비밀번호의 해시 버전입니다.
providerUserInfo JSON 객체 목록 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다.
idToken 문자열 사용자의 새 Firebase 인증 ID 토큰입니다.
refreshToken 문자열 Firebase 인증 갱신 토큰입니다.
expiresIn 문자열 ID 토큰이 만료될 때까지 남은 시간(초)입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary \
'{"idToken":"[FIREBASE_ID_TOKEN]","password":"[NEW_PASSWORD]","returnSecureToken":true}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에 연결된 새 Firebase ID 토큰 및 갱신 토큰이 포함됩니다. .

샘플 응답

{
  "localId": "tRcfmLH7o2...",
  "email": "[user@example.com]",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "[user@example.com]"
    }
  ],
  "idToken": "[NEW_ID_TOKEN]",
  "refreshToken": "[NEW_REFRESH_TOKEN]",
  "expiresIn": "3600"
}

일반적인 오류 코드

  • INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
  • WEAK_PASSWORD: 비밀번호는 6자 이상이어야 합니다.

프로필 업데이트

인증 setAccountInfo 엔드포인트에 HTTP POST 요청을 실행하여 사용자 프로필(표시 이름 / 사진 URL)을 업데이트할 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
idToken 문자열 사용자의 Firebase 인증 ID 토큰입니다.
displayName 문자열 사용자의 새 표시 이름
photoUrl 문자열 사용자의 새 사진 URL
deleteAttribute 문자열 목록 삭제할 속성 목록(예: 'DISPLAY_NAME' 또는 'PHOTO_URL'). 삭제하면 이러한 값이 null이 됩니다.
returnSecureToken 부울 ID 및 갱신 토큰 반환 여부입니다.
응답 페이로드
속성 이름 유형 설명
localId 문자열 현재 사용자의 uid입니다.
이메일 문자열 사용자의 이메일 주소
displayName 문자열 사용자의 새 표시 이름
photoUrl 문자열 사용자의 새 사진 URL
passwordHash 문자열 비밀번호의 해시 버전입니다.
providerUserInfo JSON 객체 목록 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다.
idToken 문자열 사용자의 새 Firebase 인증 ID 토큰입니다.
refreshToken 문자열 Firebase 인증 갱신 토큰입니다.
expiresIn 문자열 ID 토큰이 만료될 때까지 남은 시간(초)입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary \
'{"idToken":"[ID_TOKEN]","displayName":"[NAME]","photoUrl":"[URL]","returnSecureToken":true}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다.

샘플 응답

{
  "localId": "tRcfmLH...",
  "email": "user@example2.com",
  "displayName": "John Doe",
  "photoUrl": "[http://localhost:8080/img1234567890/photo.png]",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "user@example2.com",
      "displayName": "John Doe",
      "photoUrl": "http://localhost:8080/img1234567890/photo.png"
    }
  ],
  "idToken": "[NEW_ID_TOKEN]",
  "refreshToken": "[NEW_REFRESH_TOKEN]",
  "expiresIn": "3600"
}

일반적인 오류 코드

  • INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.

사용자 데이터 가져오기

인증 getAccountInfo 엔드포인트에 HTTP POST 요청을 실행하여 사용자 데이터를 가져올 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
idToken 문자열 계정의 Firebase ID 토큰입니다.
응답 페이로드
속성 이름 유형 설명
사용자 JSON 객체 목록 지정된 Firebase ID 토큰과 연결된 계정입니다. 자세한 내용은 아래를 참조하세요.
응답 페이로드(users 배열 콘텐츠)
속성 이름 유형 설명
localId 문자열 현재 사용자의 uid입니다.
이메일 문자열 계정 이메일입니다.
emailVerified 부울 계정 이메일 인증 여부입니다.
displayName 문자열 계정의 표시 이름입니다.
providerUserInfo JSON 객체 목록 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다.
photoUrl 문자열 계정의 사진 URL입니다.
passwordHash 문자열 비밀번호의 해시 버전입니다.
passwordUpdatedAt double 계정 비밀번호가 마지막으로 변경된 타임스탬프(밀리초)입니다.
validSince 문자열 경계를 표시하는 타임스탬프(초)로, 그 전의 Firebase ID 토큰이 생성됩니다. 취소된 것으로 간주됩니다.
사용 중지됨 부울 계정의 사용 중지 여부입니다.
lastLoginAt 문자열 계정에 마지막으로 로그인한 타임스탬프(밀리초)입니다.
createdAt 문자열 계정이 생성된 타임스탬프(밀리초)입니다.
customAuth 부울 개발자가 계정을 인증했는지 여부입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 계정과 연결된 모든 사용자 정보가 포함됩니다.

샘플 응답

{
  "users": [
    {
      "localId": "ZY1rJK0...",
      "email": "user@example.com",
      "emailVerified": false,
      "displayName": "John Doe",
      "providerUserInfo": [
        {
          "providerId": "password",
          "displayName": "John Doe",
          "photoUrl": "http://localhost:8080/img1234567890/photo.png",
          "federatedId": "user@example.com",
          "email": "user@example.com",
          "rawId": "user@example.com",
          "screenName": "user@example.com"
        }
      ],
      "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
      "passwordHash": "...",
      "passwordUpdatedAt": 1.484124177E12,
      "validSince": "1484124177",
      "disabled": false,
      "lastLoginAt": "1484628946000",
      "createdAt": "1484124142000",
      "customAuth": false
    }
  ]
}

일반적인 오류 코드

  • INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
  • USER_NOT_FOUND: 이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.

인증 setAccountInfo 엔드포인트에 HTTP POST 요청을 실행하여 현재 사용자에게 이메일/비밀번호를 연결할 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
idToken 문자열 사용자 인증 정보를 연결하려는 계정의 Firebase ID 토큰입니다.
이메일 문자열 계정에 연결할 이메일입니다.
비밀번호 문자열 계정의 새 비밀번호입니다.
returnSecureToken 문자열 ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다.
응답 페이로드
속성 이름 유형 설명
localId 문자열 현재 사용자의 uid입니다.
이메일 문자열 계정 이메일입니다.
displayName 문자열 계정의 표시 이름입니다.
photoUrl 문자열 계정의 사진 URL입니다.
passwordHash 문자열 비밀번호의 해시 버전입니다.
providerUserInfo JSON 객체 목록 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다.
emailVerified 부울 계정 이메일 인증 여부입니다.
idToken 문자열 사용자의 새 Firebase 인증 ID 토큰입니다.
refreshToken 문자열 Firebase 인증 갱신 토큰입니다.
expiresIn 문자열 ID 토큰이 만료될 때까지 남은 시간(초)입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary \
'{"idToken":"[ID_TOKEN]","email":"[user@example.com]","password":"[PASS]","returnSecureToken":true}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 확인할 수 있습니다

샘플 응답

{
  "localId": "huDwUz...",
  "email": "user@example.com",
  "displayName": "John Doe",
  "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "user@example.com"
    }
  ],
  "idToken": "[ID_TOKEN]",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "emailVerified": false
}

일반적인 오류 코드

  • CREDENTIAL_TOO_OLD_LOGIN_AGAIN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
  • TOKEN_EXPIRED: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
  • INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
  • WEAK_PASSWORD: 비밀번호는 6자 이상이어야 합니다.

인증 verifyAssertion 엔드포인트에 HTTP POST 요청을 실행하여 OAuth 사용자 인증 정보를 사용자에 연결할 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
idToken 문자열 사용자 인증 정보를 연결하려는 계정의 Firebase ID 토큰입니다.
requestUri 문자열 IDP가 사용자를 다시 리디렉션하는 URI입니다.
postBody 문자열 OAuth 사용자 인증 정보(ID 토큰 또는 액세스 토큰) 및 사용자 인증 정보를 발급하는 공급업체 ID를 포함합니다.
returnSecureToken 부울 ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다.
returnIdpCredential 부울 FEDERATED_USER_ID_ALREADY_LINKED 및 EMAIL_EXISTS 오류에 대해 OAuth 사용자 인증 정보 반환을 강제할지 여부입니다.
응답 페이로드
속성 이름 유형 설명
federatedId 문자열 고유 ID는 IdP 계정을 식별합니다.
providerId 문자열 연결된 공급업체 ID(예: Google 공급업체의 경우 'google.com')입니다.
localId 문자열 인증된 사용자의 uid입니다.
emailVerified 부울 로그인 이메일 인증 여부입니다.
이메일 문자열 계정 이메일입니다.
oauthIdToken 문자열 OIDC ID 토큰(있는 경우)입니다.
oauthAccessToken 문자열 OAuth 액세스 토큰(있는 경우)입니다.
oauthTokenSecret 문자열 OAuth 1.0 토큰 보안 비밀(있는 경우)입니다.
rawUserInfo 문자열 제공된 OAuth 사용자 인증 정보에 해당하는 모든 IdP 데이터가 포함된 문자열화된 JSON 응답입니다.
firstName 문자열 계정의 성을 제외한 이름입니다.
lastName 문자열 계정의 성입니다.
fullName 문자열 계정의 전체 이름입니다.
displayName 문자열 계정의 표시 이름입니다.
photoUrl 문자열 계정의 사진 URL입니다.
idToken 문자열 인증된 사용자의 Firebase 인증 ID 토큰입니다.
refreshToken 문자열 인증된 사용자의 Firebase 인증 갱신 토큰입니다.
expiresIn 문자열 ID 토큰이 만료될 때까지 남은 시간(초)입니다.

OAuth ID 토큰이 포함된 샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","idToken":"[FIREBASE_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에 연결된 Firebase ID 토큰 및 갱신 토큰이 포함됩니다. 확인할 수 있습니다

OAuth ID 토큰이 포함된 샘플 응답

{
  "federatedId": "https://accounts.google.com/1234567890",
  "providerId": "google.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "user@example.com",
  "oauthIdToken": "[GOOGLE_ID_TOKEN]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}"
}

OAuth 액세스 토큰이 포함된 샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"access_token=[FACEBOOK_ACCESS_TOKEN]&providerId=[facebook.com]","idToken":"[FIREBASE_ID_TOKEN]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에 연결된 Firebase ID 토큰 및 갱신 토큰이 포함됩니다. 확인할 수 있습니다

OAuth 액세스 토큰이 포함된 샘플 응답

{
  "federatedId": "http://facebook.com/1234567890",
  "providerId": "facebook.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "user@example.com",
  "oauthAccessToken": "[FACEBOOK_ACCESS_TOKEN]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "https://scontent.xx.fbcdn.net/v/...",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}"
}

Twitter OAuth 1.0 사용자 인증 정보가 포함된 샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"access_token=[TWITTER_ACCESS_TOKEN]&oauth_token_secret=[TWITTER_TOKEN_SECRET]&providerId=[twitter.com]","requestUri":"[http://localhost]","idToken":"[FIREBASE_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에 연결된 Firebase ID 토큰 및 갱신 토큰이 포함됩니다. 확인할 수 있습니다

Twitter OAuth 1.0 사용자 인증 정보가 포함된 샘플 응답

{
  "federatedId": "http://twitter.com/1234567890",
  "providerId": "twitter.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "user@example.com",
  "oauthAccessToken": "[OAUTH_ACCESS_TOKEN]",
  "oauthTokenSecret": "[OAUTH_TOKEN_SECRET]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "http://abs.twimg.com/sticky/...",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}"
}

일반적인 오류 코드

  • OPERATION_NOT_ALLOWED: 이 프로젝트에서 해당 공급업체가 사용 중지되었습니다.
  • INVALID_IDP_RESPONSE: 제공된 인증 사용자 인증 정보가 잘못되었거나 만료되었습니다.
  • INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
  • EMAIL_EXISTS: 이메일 주소가 다른 계정에서 이미 사용 중입니다.
  • FEDERATED_USER_ID_ALREADY_LINKED: 사용자 인증 정보가 이미 다른 사용자 계정과 연결되어 있습니다.

인증 setAccountInfo 엔드포인트에 HTTP POST 요청을 실행하여 현재 사용자와 공급업체의 연결을 해제할 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
idToken 문자열 계정의 Firebase ID 토큰입니다.
deleteProvider 문자열 목록 연결을 해제할 공급업체 ID 목록(예: 'google.com', 'password' 등)
응답 페이로드
속성 이름 유형 설명
localId 문자열 현재 사용자의 uid입니다.
이메일 문자열 계정 이메일입니다.
displayName 문자열 계정의 표시 이름입니다.
photoUrl 문자열 계정의 사진 URL입니다.
passwordHash 문자열 비밀번호의 해시 버전입니다.
providerUserInfo JSON 객체 목록 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다.
emailVerified 부울 계정 이메일 인증 여부입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"idToken":"[FIREBASE_ID_TOKEN]","deleteProvider":["[facebook.com]"]}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다.

샘플 응답

{
  "localId": "huDwUz...",
  "email": "user@example.com",
  "displayName": "John Doe",
  "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "google.com",
      "federatedId": "1234567890",
      "displayName": "John Doe",
      "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg"
    },
    {
      "providerId": "password",
      "federatedId": "user@example.com"
    }
  ],
  "emailVerified": "true"
}

일반적인 오류 코드

  • INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.

이메일 인증 전송

인증 getOobConfirmationCode 엔드포인트에 HTTP POST 요청을 실행하여 현재 사용자의 이메일 인증을 보낼 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
드림 선택적 헤더
속성 이름 설명
X-Firebase-Locale 사용자 언어에 해당하는 언어 코드. 이를 전달하면 사용자에게 전송되는 이메일 인증이 현지화됩니다.
요청 본문 페이로드
속성 이름 유형 설명
requestType 문자열 전송할 확인 코드 유형. 항상 'VERIFY_EMAIL'이어야 합니다.
idToken 문자열 확인할 사용자의 Firebase ID 토큰입니다.
응답 페이로드
속성 이름 유형 설명
이메일 문자열 계정 이메일입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"requestType":"VERIFY_EMAIL","idToken":"[FIREBASE_ID_TOKEN]"}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다.

샘플 응답

{
  "email": "user@example.com"
}

일반적인 오류 코드

  • INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
  • USER_NOT_FOUND: 이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.

이메일 인증 확인

인증 setAccountInfo 엔드포인트에 HTTP POST 요청을 실행하여 이메일 인증 코드를 확인할 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
oobCode 문자열 이메일 인증을 위해 사용자의 이메일로 전송되는 액션 코드
응답 페이로드
속성 이름 유형 설명
이메일 문자열 계정 이메일입니다.
displayName 문자열 계정의 표시 이름입니다.
photoUrl 문자열 계정의 사진 URL입니다.
passwordHash 문자열 비밀번호 해시
providerUserInfo JSON 객체 목록 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다.
emailVerified 부울 계정 이메일 인증 여부입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"oobCode":"[VERIFICATION_CODE]"}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다.

샘플 응답

{
  "localId": "FhyStE...",
  "email": "user@example.com",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "user@example.com"
    }
  ]
}

일반적인 오류 코드

  • EXPIRED_OOB_CODE: 작업 코드가 만료되었습니다.
  • INVALID_OOB_CODE: 작업 코드가 잘못되었습니다. 코드 형식 잘못되었거나 만료되었거나 이미 사용된 경우에 발생할 수 있습니다.
  • USER_DISABLED: 관리자가 사용자 계정을 사용 중지했습니다.
  • EMAIL_NOT_FOUND: 이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.

계정 삭제

인증 deleteAccount 엔드포인트에 HTTP POST 요청을 실행하여 현재 사용자를 삭제할 수 있습니다.

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]
드림 요청 본문 페이로드
속성 이름 유형 설명
idToken 문자열 삭제할 사용자의 Firebase ID 토큰입니다.
응답 페이로드
속성 이름 유형 설명

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'
드림 <ph type="x-smartling-placeholder">

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다.

일반적인 오류 코드

  • INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
  • USER_NOT_FOUND: 이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.

Firebase 인증 에뮬레이터

Firebase 로컬 에뮬레이터 도구 모음에는 다음과 같은 용도로 사용할 수 있는 인증 에뮬레이터가 포함되어 있습니다. 인증 흐름의 로컬 프로토타입 제작 및 테스트 에뮬레이터는 다음 REST를 노출합니다. 엔드포인트가 있습니다

<ph type="x-smartling-placeholder">

사용자 계정 삭제

상태에 관계없이 지정된 프로젝트의 모든 계정을 삭제합니다.

메서드: DELETE

엔드포인트

9099는 인증 에뮬레이터의 기본 포트입니다. 터미널 확인 출력됩니다.

http://localhost:9099/emulator/v1/projects/{project-id}/accounts

에뮬레이터 구성 가져오기

지정된 프로젝트의 에뮬레이터별 구성을 가져옵니다.

메서드: GET

엔드포인트

9099는 인증 에뮬레이터의 기본 포트입니다. 터미널 확인 출력됩니다.

http://localhost:9099/emulator/v1/projects/{project-id}/config
드림 응답 페이로드
속성 이름 유형 설명
로그인 객체 단일 키 allowDuplicateEmails (불리언)를 포함하는 signIn 구성 객체입니다.

에뮬레이터 구성 패치 적용

지정된 프로젝트의 에뮬레이터별 구성을 업데이트합니다.

방법: PATCH

엔드포인트

9099는 인증 에뮬레이터의 기본 포트입니다. 터미널 확인 출력됩니다.

콘텐츠 유형: application/json

http://localhost:9099/emulator/v1/projects/{project-id}/config
드림 요청 본문 페이로드
속성 이름 유형 설명
로그인 객체 단일 키 allowDuplicateEmails (불리언)를 포함하는 원하는 signIn 구성 객체입니다.
응답 페이로드
속성 이름 유형 설명
로그인 객체 단일 키 allowDuplicateEmails (불리언)를 포함하는 요청 후 signIn 구성 객체

대역 외 인증 코드 검색

테스트 중인 인증 흐름에서 일반적으로 대역 외 코드 (예: 이메일 인증 코드, 비밀번호 재설정 코드)이 포함될 때까지 에뮬레이터가 이러한 코드를 사용됩니다.

메서드: GET

엔드포인트

9099는 인증 에뮬레이터의 기본 포트입니다. 터미널 확인 출력됩니다.

http://localhost:9099/emulator/v1/projects/{project-id}/oobCodes
드림 응답 페이로드
속성 이름 유형 설명
oob 코드 배열 대기 중인 모든 확인 코드의 세부정보를 포함하는 객체의 배열입니다. 각 객체에는 email (문자열), oobCode (문자열), oobLink (문자열) 및 requestType (문자열)

SMS 인증 코드 가져오기

전화/SMS 인증 흐름을 테스트하는 경우 에뮬레이터가 이러한 SMS 코드를 내부적으로 저장합니다. 사용하지 마세요.

메서드: GET

엔드포인트

9099는 인증 에뮬레이터의 기본 포트입니다. 터미널 확인 출력됩니다.

http://localhost:9099/emulator/v1/projects/{project-id}/verificationCodes
드림 응답 페이로드
속성 이름 유형 설명
인증 코드 배열 대기 중인 모든 인증 코드의 세부정보를 포함하는 객체의 배열입니다. 각 객체에는 phoneNumber (문자열)과 sessionCode (문자열)이 포함됩니다.

오류 응답

오류 응답 형식

위의 API에 대해 백엔드 서버에서 오류가 반환될 때마다 응답은 다음과 같은 형식을 취합니다.

샘플 응답

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "invalid",
        "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN"
      }
    ],
    "code": 400,
    "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN"
  }
}

오류 코드는 message 필드에서 가져옵니다. 위의 모든 오류 코드는 메시지 필드 콘텐츠입니다.