Firebase 인증 REST API

API 사용

REST API를 통해 Firebase 인증 백엔드를 쿼리할 수 있습니다. 이는 새 사용자 생성, 기존 사용자 로그인, 이러한 사용자 편집 또는 삭제와 같은 다양한 작업에 사용될 수 있습니다.

이 문서 전체에서 API_KEY 관리 콘솔의 프로젝트 설정 페이지에서 얻을 수 있는 웹 API 키를 나타냅니다.

ID 및 새로 고침 토큰에 대한 사용자 정의 토큰 교환

Auth verifyCustomToken 엔드포인트에 HTTP POST 요청을 실행하여 ID 및 새로 고침 토큰에 대한 사용자 지정 인증 토큰을 교환할 수 있습니다.

방법: POST

콘텐츠 유형: 애플리케이션/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
요청 본문 페이로드
속성 이름 유형 설명
토큰 ID 및 새로고침 토큰 쌍을 생성하는 데 사용할 Firebase 인증 맞춤 토큰입니다.
returnSecureToken 부울 ID 및 새로 고침 토큰을 반환할지 여부입니다. 항상 사실이어야 합니다.
응답 페이로드
속성 이름 유형 설명
아이디토큰 제공된 맞춤 토큰에서 생성된 Firebase 인증 ID 토큰입니다.
새로 고침 토큰 제공된 맞춤 토큰에서 생성된 Firebase 인증 새로고침 토큰입니다.
만료 ID 토큰이 만료되는 시간(초)입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"token":"[CUSTOM_TOKEN]","returnSecureToken":true}'

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 Firebase ID 토큰과 맞춤 토큰과 연결된 새로고침 토큰이 포함되어 있습니다.

샘플 응답

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

일반적인 오류 코드

  • INVALID_CUSTOM_TOKEN: 사용자 정의 토큰 형식이 올바르지 않거나 어떤 이유로 인해 토큰이 유효하지 않습니다(예: 만료, 유효하지 않은 서명 등).
  • CREDENTIAL_MISMATCH: 맞춤 토큰이 다른 Firebase 프로젝트에 해당합니다.

새로 고침 토큰을 ID 토큰으로 교환

securetoken.googleapis.com 엔드포인트에 HTTP POST 요청을 실행하여 Firebase ID 토큰을 새로고침할 수 있습니다.

방법: POST

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

엔드포인트
https://securetoken.googleapis.com/v1/token?key=[API_KEY]
요청 본문 페이로드
속성 이름 유형 설명
보조금 유형 새로 고침 토큰의 부여 유형은 항상 "refresh_token"입니다.
새로 고침_토큰 Firebase 인증 새로고침 토큰입니다.
응답 페이로드
속성 이름 유형 설명
만료 ID 토큰이 만료되는 시간(초)입니다.
토큰 유형 새로 고침 토큰의 유형이며 항상 "Bearer"입니다.
새로 고침_토큰 요청에 제공된 Firebase 인증 새로 고침 토큰 또는 새 새로 고침 토큰입니다.
id_token Firebase 인증 ID 토큰입니다.
user_id 제공된 ID 토큰에 해당하는 uid입니다.
프로젝트_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]'

성공적인 요청은 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 키의 프로젝트 번호와 일치하지 않습니다.

이메일 / 비밀번호로 가입

Auth signupNewUser 엔드포인트에 HTTP POST 요청을 발행하여 새 이메일 및 비밀번호 사용자를 생성할 수 있습니다.

방법: POST

콘텐츠 유형: 애플리케이션/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
요청 본문 페이로드
속성 이름 유형 설명
이메일 사용자가 생성할 이메일입니다.
비밀번호 사용자가 생성할 비밀번호입니다.
returnSecureToken 부울 ID 및 새로 고침 토큰을 반환할지 여부입니다. 항상 사실이어야 합니다.
응답 페이로드
속성 이름 유형 설명
아이디토큰 새로 생성된 사용자의 Firebase 인증 ID 토큰입니다.
이메일 새로 생성된 사용자의 이메일입니다.
새로 고침 토큰 새로 생성된 사용자에 대한 Firebase 인증 새로고침 토큰입니다.
만료 ID 토큰이 만료되는 시간(초)입니다.
로컬ID 새로 생성된 사용자의 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}'

성공적인 요청은 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: 비정상적인 활동으로 인해 이 장치의 모든 요청을 차단했습니다. 나중에 다시 시도하세요.

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

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

방법: POST

콘텐츠 유형: 애플리케이션/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
요청 본문 페이로드
속성 이름 유형 설명
이메일 사용자가 로그인하는 데 사용하는 이메일입니다.
비밀번호 계정의 비밀번호입니다.
returnSecureToken 부울 ID 및 새로 고침 토큰을 반환할지 여부입니다. 항상 사실이어야 합니다.
응답 페이로드
속성 이름 유형 설명
아이디토큰 인증된 사용자의 Firebase 인증 ID 토큰입니다.
이메일 인증된 사용자의 이메일입니다.
새로 고침 토큰 인증된 사용자를 위한 Firebase 인증 새로고침 토큰입니다.
만료 ID 토큰이 만료되는 시간(초)입니다.
로컬ID 인증된 사용자의 uid입니다.
등기 부울 이메일이 기존 계정에 대한 것인지 여부입니다.

샘플 요청

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}'

성공적인 요청은 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: 관리자가 사용자 계정을 비활성화했습니다.

익명으로 로그인

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

방법: POST

콘텐츠 유형: 애플리케이션/json

끝점
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
요청 본문 페이로드
속성 이름 유형 설명
returnSecureToken 부울 ID 및 새로 고침 토큰을 반환할지 여부입니다. 항상 사실이어야 합니다.
응답 페이로드
속성 이름 유형 설명
아이디토큰 새로 생성된 사용자의 Firebase 인증 ID 토큰입니다.
이메일 사용자가 익명이므로 비어 있어야 합니다.
새로 고침 토큰 새로 생성된 사용자에 대한 Firebase 인증 새로고침 토큰입니다.
만료 ID 토큰이 만료되는 시간(초)입니다.
로컬 ID 새로 생성된 사용자의 uid입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"returnSecureToken":true}'

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 익명 사용자와 연결된 Firebase ID 토큰과 새로고침 토큰이 포함됩니다.

샘플 응답

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

일반적인 오류 코드

  • OPERATION_NOT_ALLOWED: 이 프로젝트에는 익명 사용자 로그인이 비활성화되어 있습니다.

OAuth 자격 증명으로 로그인

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

방법: POST

콘텐츠 유형: 애플리케이션/json

끝점
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
요청 본문 페이로드
속성 이름 유형 설명
requestUri IDP가 사용자를 다시 리디렉션하는 URI입니다.
포스트바디 OAuth 자격 증명(ID 토큰 또는 액세스 토큰)과 자격 증명을 발급하는 공급자 ID를 포함합니다.
returnSecureToken 부울 ID 및 새로 고침 토큰을 반환할지 여부입니다. 항상 사실이어야 합니다.
returnIdp 자격 증명 부울 FEDERATED_USER_ID_ALREADY_LINKED 및 EMAIL_EXISTS 오류에 대해 OAuth 자격 증명을 강제로 반환할지 여부입니다.
응답 페이로드
속성 이름 유형 설명
연합 ID 고유 ID는 IdP 계정을 식별합니다.
공급자 ID 연결된 제공업체 ID(예: Google 제공업체의 경우 'google.com')
로컬 ID 인증된 사용자의 uid입니다.
이메일인증됨 부울 로그인 이메일이 확인되었는지 여부입니다.
이메일 계정의 이메일입니다.
oauthId토큰 사용 가능한 경우 OIDC ID 토큰입니다.
oauth액세스 토큰 사용 가능한 경우 OAuth 액세스 토큰입니다.
oauthToken비밀 가능한 경우 OAuth 1.0 토큰 비밀번호입니다.
원시사용자정보 제공된 OAuth 자격 증명에 해당하는 모든 IdP 데이터를 포함하는 문자열화된 JSON 응답입니다.
이름 계정의 이름입니다.
계정의 성입니다.
전체 이름 계정의 전체 이름입니다.
이름 표시하기 계정의 표시 이름입니다.
사진 URL 계정의 사진 URL입니다.
아이디토큰 인증된 사용자의 Firebase 인증 ID 토큰입니다.
새로 고침 토큰 인증된 사용자를 위한 Firebase 인증 새로고침 토큰입니다.
만료 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]","returnIdpCredential":true,"returnSecureToken":true}'

성공적인 요청은 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}'

성공적인 요청은 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}'

성공적인 요청은 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: 제공된 인증 자격 증명이 잘못되었거나 만료되었습니다.

이메일 공급자 가져오기

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

방법: POST

콘텐츠 유형: 애플리케이션/json

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

샘플 요청

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]"}'

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

샘플 응답

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

일반적인 오류 코드

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

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

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

방법: POST

콘텐츠 유형: 애플리케이션/json

끝점
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
선택적 헤더
속성 이름 설명
X-Firebase-로케일 사용자의 로캘에 해당하는 언어 코드입니다. 이를 전달하면 사용자에게 전송되는 비밀번호 재설정 이메일이 현지화됩니다.
요청 본문 페이로드
속성 이름 유형 설명
요청 유형 반환할 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]"}'

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

샘플 응답

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

일반적인 오류 코드

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

비밀번호 재설정 코드 확인

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

방법: POST

콘텐츠 유형: 애플리케이션/json

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

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]"}'

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

샘플 응답

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

일반적인 오류 코드

  • OPERATION_NOT_ALLOWED: 이 프로젝트에는 비밀번호 로그인이 비활성화되어 있습니다.
  • EXPIRED_OOB_CODE: 작업 코드가 만료되었습니다.
  • INVALID_OOB_CODE: 작업 코드가 잘못되었습니다. 코드가 잘못되었거나, 만료되었거나, 이미 사용된 경우 이런 일이 발생할 수 있습니다.

비밀번호 재설정 확인

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

방법: POST

콘텐츠 유형: 애플리케이션/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
요청 본문 페이로드
속성 이름 유형 설명
oob코드 비밀번호 재설정을 위해 사용자의 이메일로 전송되는 이메일 작업 코드입니다.
새 비밀번호 사용자의 새 비밀번호입니다.
응답 페이로드
속성 이름 유형 설명
이메일 사용자의 이메일 주소.
요청 유형 이메일 작업 코드의 유형입니다. "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]"}'

성공적인 요청은 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

콘텐츠 유형: 애플리케이션/json

끝점
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
선택적 헤더
속성 이름 설명
X-Firebase-로케일 사용자의 로캘에 해당하는 언어 코드입니다. 이를 전달하면 사용자에게 전송되는 이메일 변경 취소가 현지화됩니다.
요청 본문 페이로드
속성 이름 유형 설명
아이디토큰 사용자의 Firebase 인증 ID 토큰입니다.
이메일 사용자의 새 이메일입니다.
returnSecureToken 부울 ID 및 새로 고침 토큰을 반환할지 여부입니다.
응답 페이로드
속성 이름 유형 설명
로컬 ID 현재 사용자의 uid입니다.
이메일 사용자의 이메일 주소.
비밀번호해시 비밀번호의 해시 버전입니다.
공급자사용자정보 JSON 객체 목록 "providerId" 및 "federatedId"를 포함하는 연결된 모든 공급자 개체의 목록입니다.
아이디토큰 사용자의 새 Firebase 인증 ID 토큰입니다.
새로 고침 토큰 Firebase 인증 새로고침 토큰입니다.
만료 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}'

성공적인 요청은 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

콘텐츠 유형: 애플리케이션/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
요청 본문 페이로드
속성 이름 유형 설명
아이디토큰 사용자의 Firebase 인증 ID 토큰입니다.
비밀번호 사용자의 새 비밀번호입니다.
returnSecureToken 부울 ID 및 새로 고침 토큰을 반환할지 여부입니다.
응답 페이로드
속성 이름 유형 설명
로컬ID 현재 사용자의 uid입니다.
이메일 사용자의 이메일 주소.
비밀번호해시 비밀번호의 해시 버전입니다.
공급자사용자정보 JSON 객체 목록 "providerId" 및 "federatedId"를 포함하는 연결된 모든 공급자 개체의 목록입니다.
아이디토큰 사용자의 새 Firebase 인증 ID 토큰입니다.
새로 고침 토큰 Firebase 인증 새로고침 토큰입니다.
만료 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}'

성공적인 요청은 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

콘텐츠 유형: 애플리케이션/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
요청 본문 페이로드
속성 이름 유형 설명
아이디토큰 사용자의 Firebase 인증 ID 토큰입니다.
이름 표시하기 사용자의 새 표시 이름입니다.
사진 URL 사용자의 새 사진 URL입니다.
삭제속성 문자열 목록 삭제할 속성 목록('DISPLAY_NAME' 또는 'PHOTO_URL')입니다. 이렇게 하면 해당 값이 무효화됩니다.
returnSecureToken 부울 ID 및 새로 고침 토큰을 반환할지 여부입니다.
응답 페이로드
속성 이름 유형 설명
로컬ID 현재 사용자의 uid입니다.
이메일 사용자의 이메일 주소.
이름 표시하기 사용자의 새 표시 이름입니다.
사진 URL 사용자의 새 사진 URL입니다.
비밀번호해시 비밀번호의 해시 버전입니다.
공급자사용자정보 JSON 객체 목록 "providerId" 및 "federatedId"를 포함하는 연결된 모든 공급자 개체의 목록입니다.
아이디토큰 사용자의 새 Firebase 인증 ID 토큰입니다.
새로 고침 토큰 Firebase 인증 새로고침 토큰입니다.
만료 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}'

성공적인 요청은 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: 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야 합니다.

사용자 데이터 가져오기

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

방법: POST

콘텐츠 유형: 애플리케이션/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
요청 본문 페이로드
속성 이름 유형 설명
아이디토큰 계정의 Firebase ID 토큰입니다.
응답 페이로드
속성 이름 유형 설명
사용자 JSON 객체 목록 지정된 Firebase ID 토큰과 연결된 계정입니다. 자세한 내용은 아래를 확인하세요.
응답 페이로드( users 배열 콘텐츠)
속성 이름 유형 설명
로컬ID 현재 사용자의 uid입니다.
이메일 계정의 이메일입니다.
이메일인증됨 부울 계정의 이메일이 확인되었는지 여부입니다.
이름 표시하기 계정의 표시 이름입니다.
공급자사용자정보 JSON 객체 목록 "providerId" 및 "federatedId"를 포함하는 연결된 모든 공급자 개체의 목록입니다.
사진 URL 계정의 사진 URL입니다.
비밀번호해시 비밀번호의 해시 버전입니다.
비밀번호업데이트시간 더블 계정 비밀번호가 마지막으로 변경된 타임스탬프(밀리초)입니다.
유효한 이후 Firebase ID 토큰이 취소된 것으로 간주되기 전에 경계를 표시하는 타임스탬프(초)입니다.
장애가 있는 부울 계정이 비활성화되었는지 여부입니다.
마지막로그인시간 계정이 마지막으로 로그인한 타임스탬프(밀리초)입니다.
생성 시간 계정이 생성된 타임스탬프(밀리초)입니다.
맞춤 인증 부울 개발자가 계정을 인증했는지 여부입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'

성공적인 요청은 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

콘텐츠 유형: 애플리케이션/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
요청 본문 페이로드
속성 이름 유형 설명
아이디토큰 사용자 인증 정보를 연결하려는 계정의 Firebase ID 토큰입니다.
이메일 계정에 연결할 이메일입니다.
비밀번호 계정의 새 비밀번호입니다.
returnSecureToken ID 및 새로 고침 토큰을 반환할지 여부입니다. 항상 사실이어야 합니다.
응답 페이로드
속성 이름 유형 설명
로컬ID 현재 사용자의 uid입니다.
이메일 계정의 이메일입니다.
이름 표시하기 계정의 표시 이름입니다.
사진 URL 계정의 사진 URL입니다.
비밀번호해시 비밀번호의 해시 버전입니다.
공급자사용자정보 JSON 객체 목록 "providerId" 및 "federatedId"를 포함하는 연결된 모든 공급자 개체의 목록입니다.
이메일인증됨 부울 계정의 이메일이 확인되었는지 여부입니다.
아이디토큰 사용자의 새 Firebase 인증 ID 토큰입니다.
새로 고침 토큰 Firebase 인증 새로고침 토큰입니다.
만료 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}'

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 인증된 사용자와 연결된 Firebase ID 토큰과 새로고침 토큰이 포함됩니다.

샘플 응답

{
  "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자 이상이어야 합니다.

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

방법: POST

콘텐츠 유형: 애플리케이션/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
요청 본문 페이로드
속성 이름 유형 설명
아이디토큰 사용자 인증 정보를 연결하려는 계정의 Firebase ID 토큰입니다.
requestUri IDP가 사용자를 다시 리디렉션하는 URI입니다.
포스트바디 OAuth 자격 증명(ID 토큰 또는 액세스 토큰)과 자격 증명을 발급하는 공급자 ID를 포함합니다.
returnSecureToken 부울 ID 및 새로 고침 토큰을 반환할지 여부입니다. 항상 사실이어야 합니다.
returnIdp 자격 증명 부울 FEDERATED_USER_ID_ALREADY_LINKED 및 EMAIL_EXISTS 오류에 대해 OAuth 자격 증명을 강제로 반환할지 여부입니다.
응답 페이로드
속성 이름 유형 설명
연합 ID 고유 ID는 IdP 계정을 식별합니다.
공급자 ID 연결된 제공업체 ID(예: Google 제공업체의 경우 'google.com')
로컬 ID 인증된 사용자의 uid입니다.
이메일인증됨 부울 로그인 이메일이 확인되었는지 여부입니다.
이메일 계정의 이메일입니다.
oauthId토큰 사용 가능한 경우 OIDC ID 토큰입니다.
oauth액세스 토큰 사용 가능한 경우 OAuth 액세스 토큰입니다.
oauthToken비밀 가능한 경우 OAuth 1.0 토큰 비밀번호입니다.
원시사용자정보 제공된 OAuth 자격 증명에 해당하는 모든 IdP 데이터를 포함하는 문자열화된 JSON 응답입니다.
이름 계정의 이름입니다.
계정의 성입니다.
전체 이름 계정의 전체 이름입니다.
이름 표시하기 계정의 표시 이름입니다.
사진 URL 계정의 사진 URL입니다.
아이디토큰 인증된 사용자의 Firebase 인증 ID 토큰입니다.
새로 고침 토큰 인증된 사용자를 위한 Firebase 인증 새로고침 토큰입니다.
만료 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}'

성공적인 요청은 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}'

성공적인 요청은 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}'

성공적인 요청은 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

콘텐츠 유형: 애플리케이션/json

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

샘플 요청

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]"]}'

성공적인 요청은 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

콘텐츠 유형: 애플리케이션/json

끝점
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
선택적 헤더
속성 이름 설명
X-Firebase-로케일 사용자의 로캘에 해당하는 언어 코드입니다. 이를 전달하면 사용자에게 전송되는 이메일 확인이 현지화됩니다.
요청 본문 페이로드
속성 이름 유형 설명
요청 유형 보낼 확인 코드의 유형입니다. 항상 "VERIFY_EMAIL"이어야 합니다.
아이디토큰 확인할 사용자의 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]"}'

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

샘플 응답

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

일반적인 오류 코드

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

이메일 확인 확인

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

방법: POST

콘텐츠 유형: 애플리케이션/json

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

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"oobCode":"[VERIFICATION_CODE]"}'

성공적인 요청은 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: 이 식별자에 해당하는 사용자 기록이 없습니다. 사용자가 삭제되었을 수 있습니다.

계정 삭제

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

방법: POST

콘텐츠 유형: 애플리케이션/json

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

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'

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

일반적인 오류 코드

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

Firebase 인증 에뮬레이터

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

사용자 계정 지우기

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

방법: 삭제

엔드포인트

9099 인증 에뮬레이터의 기본 포트입니다. 실제 사용되는 포트의 터미널 출력을 확인하세요.

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

에뮬레이터 구성 가져오기

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

방법: GET

엔드포인트

9099 인증 에뮬레이터의 기본 포트입니다. 실제 사용되는 포트의 터미널 출력을 확인하세요.

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

패치 에뮬레이터 구성

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

방법: 패치

엔드포인트

9099 인증 에뮬레이터의 기본 포트입니다. 실제 사용되는 포트의 터미널 출력을 확인하세요.

콘텐츠 유형: 애플리케이션/json

http://localhost:9099/emulator/v1/projects/{project-id}/config
요청 본문 페이로드
속성 이름 유형 설명
로그인 물체 단일 키인 allowDuplicateEmails (부울)가 있는 원하는 signIn 구성 개체입니다.
응답 페이로드
속성 이름 유형 설명
로그인 물체 요청 후 서명 된 구성 객체 단일 키, allowDuplicateEmails (부울).

대역 외 인증 코드를 검색합니다

테스트중인 인증 흐름이 일반적으로 대역 외 코드 (예 : 이메일 확인 코드, 비밀번호 재설정 코드)를 생성하는 경우 에뮬레이터는 이러한 코드가 사용될 때까지 내부적으로 저장합니다.

방법 : 얻으십시오

엔드 포인트

9099 인증 에뮬레이터의 기본 포트입니다. 사용중인 실제 포트가 터미널 출력을 확인하십시오.

http://localhost:9099/emulator/v1/projects/{project-id}/oobCodes
응답 페이로드
속성 이름 유형 설명
oobcodes 정렬 모든 계류중인 확인 코드의 세부 사항을 포함하는 객체 배열. 각 객체에는 email (String), oobCode (String), oobLink (String) 및 requestType (String)가 포함됩니다.

SMS 확인 코드를 검색합니다

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

방법 : 얻으십시오

엔드 포인트

9099 인증 에뮬레이터의 기본 포트입니다. 사용중인 실제 포트가 터미널 출력을 확인하십시오.

http://localhost:9099/emulator/v1/projects/{project-id}/verificationCodes
응답 페이로드
속성 이름 유형 설명
verificationCodes 정렬 모든 계류중인 검증 코드의 세부 사항을 포함하는 객체 배열. 각 객체에는 phoneNumber (String) 및 sessionCode (String)가 포함됩니다.

오류 응답

오류 응답 형식

위의 API에 대한 백엔드 서버에서 오류가 반환 될 때마다 응답에는 다음 형식이 있습니다.

샘플 응답

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

오류 코드는 메시지 필드에서 얻습니다. 위의 모든 오류 코드는 메시지 필드 내용을 나타냅니다.

,

API 사용

REST API를 통해 Firebase Auth를 쿼리 할 수 ​​있습니다. 이는 새 사용자 생성, 기존 사용자에 서명하고 이러한 사용자를 편집하거나 삭제하는 등 다양한 작업에 사용할 수 있습니다.

이 문서 전체에서 API_KEY 웹 API 키를 말하며 관리자 콘솔의 프로젝트 설정 페이지에서 얻을 수 있습니다.

ID에 대한 맞춤형 토큰을 교환하고 새로 고침

인증 verifyCustomToken endpoint에 HTTP POST 요청을 발행하여 ID에 대해 사용자 정의 인증 토큰을 교환하고 새로 고침 토큰을 교환 할 수 있습니다.

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
요청 바디 페이로드
속성 이름 유형 설명
토큰 ID를 만들고 토큰 쌍을 새로 고침 할 수있는 Firebase Ault Custom Token.
ReturnSecureToken 부울 ID를 반환하고 새로 고침할지 여부. 항상 사실이어야합니다.
응답 페이로드
속성 이름 유형 설명
Idtoken 제공된 커스텀 토큰에서 생성 된 Firebase Auth ID 토큰.
RefreshToken 제공된 커스텀 토큰에서 생성 된 Firebase Auth Refresh Token.
만료 ID 토큰이 만료되는 초 수.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"token":"[CUSTOM_TOKEN]","returnSecureToken":true}'

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 이 응답에는 Firebase ID 토큰 및 사용자 정의 토큰과 관련된 새로 고침 토큰이 포함되어 있습니다.

샘플 응답

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

일반적인 오류 코드

  • invalid_custom_token : 사용자 정의 토큰 형식이 잘못되었거나 어떤 이유로 든 토큰이 유효하지 않습니다 (예 : 만료, 유효하지 않은 서명 등).
  • Credential_mistatch : 사용자 정의 토큰은 다른 Firebase 프로젝트에 해당합니다.

ID 토큰으로 새로 고침 토큰을 교환하십시오

securetoken.googleapis.com endpoint에 HTTP POST 요청을 발행하여 Firebase ID 토큰을 새로 고칠 수 있습니다.

방법 : 게시물

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

엔드 포인트
https://securetoken.googleapis.com/v1/token?key=[API_KEY]
요청 바디 페이로드
속성 이름 유형 설명
grant_type 새로 고침 토큰의 보조금 유형, 항상 "refresh_token".
refresh_token Firebase Auth Refresh Token.
응답 페이로드
속성 이름 유형 설명
만료 ID 토큰이 만료되는 초 수.
token_type 새로 고침 토큰의 유형, 항상 "베어러".
refresh_token 요청에 제공된 Firebase Auth Refresh Token 또는 새로운 새로 고침 토큰.
id_token Firebase Auth ID 토큰.
user_id 제공된 ID 토큰에 해당하는 UID.
project_id Firebase Project 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]'

성공적인 요청은 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 \": 쿼리 매개 변수를 바인딩 할 수 없습니다. 필드 'Comphriph_Tokens'는 요청 메시지에서 찾을 수 없습니다.
  • invalid_grant_type : 지정된 보조금 유형이 유효하지 않습니다.
  • Missing_Refresh_Token : 새로 고침 토큰이 제공되지 않습니다.
  • project_number_mismatch : 새로 고침 토큰의 프로젝트 번호는 제공된 API 키의 프로젝트 번호와 일치하지 않습니다.

이메일 / 비밀번호로 가입하십시오

Auth signupNewUser Endpoint에 HTTP POST 요청을 발행하여 새 이메일 및 비밀번호 사용자를 만들 수 있습니다.

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

엔드 포인트
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
요청 바디 페이로드
속성 이름 유형 설명
이메일 사용자가 작성할 이메일.
비밀번호 사용자가 생성 할 비밀번호.
ReturnSecureToken 부울 ID를 반환하고 새로 고침할지 여부. 항상 사실이어야합니다.
응답 페이로드
속성 이름 유형 설명
Idtoken 새로 생성 된 사용자를위한 Firebase Auth ID 토큰.
이메일 새로 생성 된 사용자를위한 이메일.
RefreshToken 새로 생성 된 사용자를위한 Firebase Auth Refresh Token.
만료 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}'

성공적인 요청은 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 : 비정상적인 활동으로 인해이 장치의 모든 요청을 차단했습니다. 나중에 다시 시도하세요.

이메일 / 비밀번호로 로그인하십시오

Auth verifyPassword endpoint에 HTTP POST 요청을 발행하여 이메일 및 비밀번호로 사용자에게 로그인 할 수 있습니다.

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
요청 바디 페이로드
속성 이름 유형 설명
이메일 사용자가 로그인하는 이메일.
비밀번호 계정의 비밀번호.
ReturnSecureToken 부울 ID를 반환하고 새로 고침할지 여부. 항상 사실이어야합니다.
응답 페이로드
속성 이름 유형 설명
Idtoken 인증 된 사용자를위한 Firebase Auth ID 토큰.
이메일 인증 된 사용자를위한 이메일.
RefreshToken 인증 된 사용자를위한 Firebase Auth Refresh Token.
만료 ID 토큰이 만료되는 초 수.
localid 인증 된 사용자의 UID.
등기 부울 이메일이 기존 계정에 대한 것인지 여부

샘플 요청

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}'

성공적인 요청은 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 : 관리자가 사용자 계정을 비활성화했습니다.

익명으로 로그인하십시오

Auth signupNewUser Endpoint에 HTTP POST 요청을 발행하여 익명으로 사용자에게 로그인 할 수 있습니다.

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

엔드 포인트
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
요청 본체 페이로드
속성 이름 유형 설명
ReturnSecureToken 부울 ID를 반환하고 새로 고침할지 여부. 항상 사실이어야합니다.
응답 페이로드
속성 이름 유형 설명
Idtoken 새로 생성 된 사용자를위한 Firebase Auth ID 토큰.
이메일 사용자는 익명이므로 비어 있어야합니다.
RefreshToken 새로 생성 된 사용자를위한 Firebase Auth Refresh Token.
만료 ID 토큰이 만료되는 초 수.
localid 새로 생성 된 사용자의 UID.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"returnSecureToken":true}'

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 이 응답에는 익명 사용자와 관련된 Firebase ID 토큰 및 새로 고침 토큰이 포함되어 있습니다.

샘플 응답

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

일반적인 오류 코드

  • Operation_Not_allowed :이 프로젝트에는 익명 사용자 로그인이 비활성화되었습니다.

Oauth 자격 증명으로 로그인하십시오

Auth verifyAssertion endpoint에 HTTP POST 요청을 발행하여 OAUTH 자격 증명을 가진 사용자에게 로그인 할 수 있습니다.

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

엔드 포인트
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
요청 바디 페이로드
속성 이름 유형 설명
requesturi IDP가 사용자를 다시 리디렉션하는 URI.
우체통 자격 증명을 발행하는 Oauth 자격 증명 (ID 토큰 또는 액세스 토큰) 및 제공자 ID가 포함되어 있습니다.
ReturnSecureToken 부울 ID를 반환하고 새로 고침할지 여부. 항상 사실이어야합니다.
returnIdPcredential 부울 다음 오류에서 OAUTH 자격 증명을 강제로 반환할지 여부 : Federated_user_ID_ALREADY_LINKED 및 이메일_Exists.
응답 페이로드
속성 이름 유형 설명
FederatedId 고유 ID는 IDP 계정을 식별합니다.
제공자 링크 된 공급자 ID (예 : Google 제공 업체의 "Google.com").
localid 인증 된 사용자의 UID.
이메일 보류 부울 로그인 이메일이 확인되는지 여부
이메일 계정의 이메일.
oauthidtoken 사용 가능한 경우 OIDC ID 토큰.
oauthaccesstoken 사용 가능한 경우 OAUTH 액세스 토큰.
Oauthtokensecret 사용 가능한 경우 Oauth 1.0 토큰 비밀.
Rawuserinfo 제공된 OAUTH 자격 증명에 해당하는 모든 IDP 데이터를 포함하는 Stringified JSON 응답.
이름 계정의 이름.
계정의 성.
풀 이름 계정의 전체 이름.
이름 표시하기 계정의 표시 이름입니다.
Photourl 계정의 사진 URL.
Idtoken 인증 된 사용자를위한 Firebase Auth ID 토큰.
RefreshToken 인증 된 사용자를위한 Firebase Auth Refresh Token.
만료 ID 토큰이 만료되는 초 수.
Needconfichation 부울 동일한 자격 증명을 가진 다른 계정이 이미 존재하는지 여부. 사용자는 원래 계정에 로그인 한 다음 현재 자격 증명을 연결해야합니다.

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}'

성공적인 요청은 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}'

성공적인 요청은 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}'

성공적인 요청은 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 : 제공된 인증 자격 증명은 기형 또는 만료되었습니다.

이메일을위한 제공자를 가져 오십시오

Auth createAuthUri 엔드 포인트에 HTTP POST 요청을 발행하여 지정된 이메일과 관련된 모든 제공 업체를 볼 수 있습니다.

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

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

샘플 요청

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]"}'

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 이메일과 관련된 제공자 목록이 포함되어 있습니다.

샘플 응답

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

일반적인 오류 코드

  • invalid_email : 이메일 주소가 잘못 형식화되었습니다.

비밀번호 재설정 이메일을 보내십시오

Auth getOobConfirmationCode Endpoint에 HTTP POST 요청을 발행하여 비밀번호 재설정 이메일을 보낼 수 있습니다.

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

엔드 포인트
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
옵션 헤더
속성 이름 설명
X-Firebase-Locale 사용자의 로케일에 해당하는 언어 코드. 이 전달은 사용자에게 전송 된 비밀번호 재설정 이메일을 현지화합니다.
신체 페이로드를 요청하십시오
속성 이름 유형 설명
요청 유형 반환 할 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]"}'

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

샘플 응답

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

일반적인 오류 코드

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

비밀번호 재설정 코드를 확인하십시오

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

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

엔드 포인트
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
요청 본체 페이로드
속성 이름 유형 설명
OOBCODE 비밀번호를 재설정하기 위해 사용자의 이메일로 전자 메일 액션 코드가 전송됩니다.
응답 페이로드
속성 이름 유형 설명
이메일 사용자의 이메일 주소.
요청 유형 이메일 액션 코드 유형. "password_reset"이어야합니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]"}'

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

샘플 응답

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

일반적인 오류 코드

  • Operation_Not_allowed :이 프로젝트에 비밀번호 로그인이 비활성화되었습니다.
  • EXPRIED_OOB_CODE : 작업 코드가 만료되었습니다.
  • invalid_oob_code : 동작 코드가 유효하지 않습니다. 코드가 기형, 만료 또는 이미 사용 된 경우 발생할 수 있습니다.

비밀번호 재설정을 확인하십시오

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

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

엔드 포인트
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
요청 바디 페이로드
속성 이름 유형 설명
OOBCODE 비밀번호를 재설정하기 위해 사용자의 이메일로 전자 메일 액션 코드가 전송됩니다.
새 비밀번호 사용자의 새 비밀번호.
응답 페이로드
속성 이름 유형 설명
이메일 사용자의 이메일 주소.
요청 유형 이메일 액션 코드 유형. "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]"}'

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

샘플 응답

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

일반적인 오류 코드

  • Operation_Not_allowed :이 프로젝트에 비밀번호 로그인이 비활성화되었습니다.
  • EXPRIED_OOB_CODE : 작업 코드가 만료되었습니다.
  • invalid_oob_code : 동작 코드가 유효하지 않습니다. 코드가 기형, 만료 또는 이미 사용 된 경우 발생할 수 있습니다.
  • user_disabled : 관리자가 사용자 계정을 비활성화했습니다.

이메일을 바꾸다

Auth setAccountInfo endpoint에 HTTP POST 요청을 발행하여 사용자의 이메일을 변경할 수 있습니다.

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

엔드 포인트
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
옵션 헤더
속성 이름 설명
X-Firebase-Locale 사용자의 로케일에 해당하는 언어 코드. 이를 전달하면 사용자에게 전송 된 이메일 변경 취소가 현지화됩니다.
신체 페이로드를 요청하십시오
속성 이름 유형 설명
Idtoken 사용자를위한 Firebase Auth ID 토큰.
이메일 사용자의 새 이메일.
ReturnSecureToken 부울 ID를 반환하고 새로 고침할지 여부.
응답 페이로드
속성 이름 유형 설명
localid 현재 사용자의 UID.
이메일 사용자의 이메일 주소.
비밀번호 암호의 해시 버전.
ProviderUserInfo JSON 개체 목록 "제공자"및 "FederatedID"를 포함하는 모든 연결된 공급자 개체 목록.
Idtoken 사용자를위한 새로운 Firebase Auth ID 토큰.
RefreshToken Firebase Auth Refresh Token.
만료 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}'

성공적인 요청은 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 : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.

비밀번호 변경

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

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

엔드 포인트
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
요청 바디 페이로드
속성 이름 유형 설명
Idtoken 사용자를위한 Firebase Auth ID 토큰.
비밀번호 사용자의 새 비밀번호.
ReturnSecureToken 부울 ID를 반환하고 새로 고침할지 여부.
응답 페이로드
속성 이름 유형 설명
localid 현재 사용자의 UID.
이메일 사용자의 이메일 주소.
비밀번호 암호의 해시 버전.
ProviderUserInfo JSON 개체 목록 "제공자"및 "FederatedID"를 포함하는 모든 연결된 공급자 개체 목록.
Idtoken 사용자를위한 새로운 Firebase Auth ID 토큰.
RefreshToken Firebase Auth Refresh Token.
만료 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}'

성공적인 요청은 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 : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.
  • 약한 _password : 비밀번호는 6 자 이상이어야합니다.

프로필 업데이트

Auth setAccountInfo endpoint에 HTTP POST 요청을 발행하여 사용자의 프로필 (디스플레이 이름 / 사진 URL)을 업데이트 할 수 있습니다.

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

엔드 포인트
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
요청 바디 페이로드
속성 이름 유형 설명
Idtoken 사용자를위한 Firebase Auth ID 토큰.
이름 표시하기 사용자의 새 디스플레이 이름.
Photourl 사용자의 새 사진 URL.
deleteattribute 문자열 목록 삭제할 속성 목록, "display_name"또는 "photo_url". 이것은 이러한 값을 무효화합니다.
ReturnSecureToken 부울 ID를 반환하고 새로 고침할지 여부.
응답 페이로드
속성 이름 유형 설명
localid 현재 사용자의 UID.
이메일 사용자의 이메일 주소.
이름 표시하기 사용자의 새 디스플레이 이름.
Photourl 사용자의 새 사진 URL.
비밀번호 암호의 해시 버전.
ProviderUserInfo JSON 개체 목록 "제공자"및 "FederatedID"를 포함하는 모든 연결된 공급자 개체 목록.
Idtoken 사용자를위한 새로운 Firebase Auth ID 토큰.
RefreshToken Firebase Auth Refresh Token.
만료 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}'

성공적인 요청은 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 : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.

사용자 데이터를 얻습니다

Auth getAccountInfo endpoint에 HTTP POST 요청을 발행하여 사용자의 데이터를 얻을 수 있습니다.

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

엔드 포인트
https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
요청 바디 페이로드
속성 이름 유형 설명
Idtoken 계정의 Firebase ID 토큰.
응답 페이로드
속성 이름 유형 설명
사용자 JSON 개체 목록 주어진 Firebase ID 토큰과 관련된 계정. 자세한 내용은 아래를 확인하십시오.
응답 페이로드 ( users 어레이 컨텐츠)
속성 이름 유형 설명
localid 현재 사용자의 UID.
이메일 계정의 이메일.
이메일 보류 부울 계정의 이메일이 확인되었는지 여부.
이름 표시하기 계정의 표시 이름입니다.
ProviderUserInfo JSON 개체 목록 "제공자"및 "FederatedID"를 포함하는 모든 연결된 공급자 개체 목록.
Photourl 계정의 사진 URL.
비밀번호 암호의 해시 버전.
passwordupdatedat 더블 계정 비밀번호가 마지막으로 변경되었다는 타임 스탬프는 밀리 초입니다.
유효한 Timestamp는 몇 초 만에 경계를 표시하기 전에 Firebase ID 토큰이 취소 된 것으로 간주됩니다.
장애가 있는 부울 계정이 비활성화되었는지 여부.
LastLoginat 계정이 마지막으로 로그인 한 밀리 초의 타임 스탬프.
창조된다 계정이 생성 된 밀리 초의 타임 스탬프.
CustomAuth 부울 계정이 개발자가 인증하는지 여부

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'

성공적인 요청은 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 :이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.

Auth setAccountInfo endpoint에 HTTP POST 요청을 발행하여 이메일/비밀번호를 현재 사용자에게 연결할 수 있습니다.

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

엔드 포인트
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
요청 바디 페이로드
속성 이름 유형 설명
Idtoken 자격 증명을 연결하려는 계정의 Firebase ID 토큰.
이메일 계정에 링크 할 이메일.
비밀번호 계정의 새 비밀번호.
ReturnSecureToken ID를 반환하고 새로 고침할지 여부. 항상 사실이어야합니다.
응답 페이로드
속성 이름 유형 설명
localid 현재 사용자의 UID.
이메일 계정의 이메일.
이름 표시하기 계정의 표시 이름입니다.
Photourl 계정의 사진 URL.
비밀번호 암호의 해시 버전.
ProviderUserInfo JSON 개체 목록 "제공자"및 "FederatedID"를 포함하는 모든 연결된 공급자 개체 목록.
이메일 보류 부울 계정의 이메일이 확인되었는지 여부.
Idtoken 사용자를위한 새로운 Firebase Auth ID 토큰.
RefreshToken Firebase Auth Refresh Token.
만료 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}'

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 이 응답에는 인증 된 사용자와 관련된 Firebase ID 토큰 및 새로 고침 토큰이 포함되어 있습니다.

샘플 응답

{
  "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 : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.
  • 약한 _password : 비밀번호는 6 자 이상이어야합니다.

Auth verifyAssertion endpoint에 HTTP POST 요청을 발행하여 OAUTH 자격 증명을 사용자에게 연결할 수 있습니다.

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

엔드 포인트
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
요청 바디 페이로드
속성 이름 유형 설명
Idtoken 자격 증명을 연결하려는 계정의 Firebase ID 토큰.
requesturi IDP가 사용자를 다시 리디렉션하는 URI.
우체통 자격 증명을 발행하는 Oauth 자격 증명 (ID 토큰 또는 액세스 토큰) 및 제공자 ID가 포함되어 있습니다.
ReturnSecureToken 부울 ID를 반환하고 새로 고침할지 여부. 항상 사실이어야합니다.
returnIdPcredential 부울 다음 오류에서 OAUTH 자격 증명을 강제로 반환할지 여부 : Federated_user_ID_ALREADY_LINKED 및 이메일_Exists.
응답 페이로드
속성 이름 유형 설명
FederatedId 고유 ID는 IDP 계정을 식별합니다.
제공자 링크 된 공급자 ID (예 : Google 제공 업체의 "Google.com").
localid 인증 된 사용자의 UID.
이메일 보류 부울 서명 이메일이 확인되었는지 여부.
이메일 계정의 이메일.
oauthidtoken 사용 가능한 경우 OIDC ID 토큰.
oauthaccesstoken 사용 가능한 경우 OAUTH 액세스 토큰.
Oauthtokensecret 사용 가능한 경우 Oauth 1.0 토큰 비밀.
Rawuserinfo 제공된 OAUTH 자격 증명에 해당하는 모든 IDP 데이터를 포함하는 Stringified JSON 응답.
이름 계정의 이름.
계정의 성.
풀 이름 계정의 전체 이름.
이름 표시하기 계정의 표시 이름입니다.
Photourl 계정의 사진 URL.
Idtoken 인증 된 사용자를위한 Firebase Auth ID 토큰.
RefreshToken 인증 된 사용자를위한 Firebase Auth Refresh Token.
만료 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}'

성공적인 요청은 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}'

성공적인 요청은 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}'

성공적인 요청은 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 :이 자격 증명은 이미 다른 사용자 계정과 관련이 있습니다.

Auth setAccountInfo endpoint에 HTTP POST 요청을 발행하여 현재 사용자의 공급자를 해제 할 수 있습니다.

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

엔드 포인트
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
요청 본체 페이로드
속성 이름 유형 설명
Idtoken 계정의 Firebase ID 토큰.
deleteprovider 문자열 목록 링크되지 않은 공급자 ID 목록 (예 : 'Google.com', 'Password'등).
응답 페이로드
속성 이름 유형 설명
localid 현재 사용자의 UID.
이메일 계정의 이메일.
이름 표시하기 계정의 표시 이름입니다.
Photourl 계정의 사진 URL.
비밀번호 암호의 해시 버전.
ProviderUserInfo JSON 개체 목록 "제공자"및 "FederatedID"를 포함하는 모든 연결된 공급자 개체 목록.
이메일 보류 부울 계정의 이메일이 확인되었는지 여부.

샘플 요청

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]"]}'

성공적인 요청은 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 : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.

이메일 확인을 보내십시오

Auth getOobConfirmationCode Endpoint에 HTTP POST 요청을 발행하여 현재 사용자에 대한 이메일 확인을 보낼 수 있습니다.

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

엔드 포인트
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
옵션 헤더
속성 이름 설명
X-Firebase-Locale 사용자의 로케일에 해당하는 언어 코드. 이것을 전달하면 사용자에게 전송 된 이메일 확인이 현지화됩니다.
신체 페이로드를 요청하십시오
속성 이름 유형 설명
요청 유형 보낼 확인 코드의 유형. 항상 "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]"}'

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

샘플 응답

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

일반적인 오류 코드

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

이메일 확인을 확인하십시오

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

방법 : 게시물

콘텐츠 유형: 애플리케이션/json

엔드 포인트
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
요청 바디 페이로드
속성 이름 유형 설명
OOBCODE 이메일 확인을 위해 사용자의 이메일로 전송 된 조치 코드.
응답 페이로드
속성 이름 유형 설명
이메일 계정의 이메일.
이름 표시하기 계정의 표시 이름입니다.
Photourl 계정의 사진 URL.
비밀번호 암호 해시.
ProviderUserInfo JSON 개체 목록 "제공자"및 "FederatedID"를 포함하는 모든 연결된 공급자 개체 목록.
이메일 보류 부울 계정의 이메일이 확인되었는지 여부.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"oobCode":"[VERIFICATION_CODE]"}'

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

샘플 응답

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

일반적인 오류 코드

  • EXPRIED_OOB_CODE : 작업 코드가 만료되었습니다.
  • invalid_oob_code : 동작 코드가 유효하지 않습니다. 코드가 기형, 만료 또는 이미 사용 된 경우 발생할 수 있습니다.
  • user_disabled : 관리자가 사용자 계정을 비활성화했습니다.
  • email_not_found :이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.

계정 삭제

auth deleteAccount endpoint에 http POST 요청을 발행하여 현재 사용자를 삭제할 수 있습니다.

방법 : 게시물

콘텐츠 유형: 애플리케이션/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]"}'

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

일반적인 오류 코드

  • invalid_id_token : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.
  • USER_NOT_FOUND: There is no user record corresponding to this identifier. The user may have been deleted.

Firebase Authentication Emulator

The Firebase Local Emulator Suite includes an Authentication emulator , which can be used for local prototyping and testing of authentication flows. The emulator exposes the following REST endpoints.

Clear user accounts

Remove all accounts in the specified project, regardless of state.

Method: DELETE

Endpoint

Note that 9099 is the default port for the Authentication emulator. Check terminal output for the actual port being used.

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

Get emulator configuration

Get emulator-specific configuration for the specified project.

Method: GET

Endpoint

Note that 9099 is the default port for the Authentication emulator. Check terminal output for the actual port being used.

http://localhost:9099/emulator/v1/projects/{project-id}/config
Response Payload
속성 이름 유형 설명
signIn 물체 signIn configuration object containing a single key, allowDuplicateEmails (boolean).

Patch emulator configuration

Update emulator-specific configuration for the specified project.

Method: PATCH

Endpoint

Note that 9099 is the default port for the Authentication emulator. Check terminal output for the actual port being used.

콘텐츠 유형: 애플리케이션/json

http://localhost:9099/emulator/v1/projects/{project-id}/config
Request Body Payload
속성 이름 유형 설명
signIn 물체 Desired signIn configuration object with single key, allowDuplicateEmails (boolean).
Response Payload
속성 이름 유형 설명
signIn 물체 Post-request signIn configuration object with single key, allowDuplicateEmails (boolean).

Retrieve out-of-band authentication codes

If the authentication flows you are testing would normally generate out-of-band codes (eg, email verification codes, password reset codes), the emulator stores such codes internally until they are used.

Method: GET

Endpoint

Note that 9099 is the default port for the Authentication emulator. Check terminal output for the actual port being used.

http://localhost:9099/emulator/v1/projects/{project-id}/oobCodes
Response Payload
속성 이름 유형 설명
oobCodes 정렬 An array of objects containing details of all pending confirmation codes. Each object contains email (string), oobCode (string), oobLink (string), and requestType (string)

Retrieve SMS verification codes

If you are testing phone/SMS authentication flows, the emulator stores such SMS codes internally until they are used.

Method: GET

Endpoint

Note that 9099 is the default port for the Authentication emulator. Check terminal output for the actual port being used.

http://localhost:9099/emulator/v1/projects/{project-id}/verificationCodes
Response Payload
속성 이름 유형 설명
verificationCodes 정렬 An array of objects containing details of all pending verification codes. Each object contains phoneNumber (string) and sessionCode (string).

Error Response

Error response format

Anytime an error is returned from the backend server for any of the APIs above, the response will have the following format.

샘플 응답

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

The error code is obtained from the message field. All of the above error codes refer to the message field content.