REST API 사용

이 문서에서는 Identity Platform REST API를 사용하여 사용자 로그인 및 토큰 작업 등의 일반적인 사용자 작업을 수행하는 방법을 보여줍니다.

시작하기 전에

REST API를 사용하려면 Identity Platform API 키가 필요합니다. 키를 가져오려면 다음 안내를 따르세요.

  1. Google Cloud Console에서 ID 공급업체 페이지로 이동합니다.
    ID 공급업체 페이지로 이동

  2. 애플리케이션 설정 세부정보를 클릭합니다.

  3. apiKey 필드를 복사합니다.

모든 API 호출에는 HTTPS가 필요합니다.

API 호출

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

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

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
요청 본문 페이로드
속성 이름 유형 설명
token 문자열 ID 및 갱신 토큰 쌍을 생성할 Identity Platform 커스텀 토큰입니다.
returnSecureToken 부울 ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다.
tenantId 문자열 사용자가 로그인하는 테넌트 ID입니다. 멀티테넌시에서만 사용됩니다.
토큰의 tenant_id와 일치해야 합니다.
커스텀 토큰 클레임
속성 이름 설명
alg 알고리즘 RS256이어야 합니다.
iss 발급자 프로젝트의 서비스 계정 이메일 주소
sub 제목 프로젝트의 서비스 계정 이메일 주소
aud 대상 https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit
iat 발급 시간 UNIX epoch를 기준으로 하는 현재 시간(초)
exp 만료 시간 Unix epoch를 기준으로 하는 토큰 만료 시간(초). iat보다 최대 3,600초 길어질 수 있습니다.
참고: 이 항목은 커스텀 토큰 자체의 만료 시간만 제어합니다. signInWithCustomToken()으로 사용자가 로그인한 후에는 세션이 무효화되거나 사용자가 로그아웃할 때까지 기기에서 로그인 상태가 유지됩니다.
uid 사용자 ID 사용자의 고유 식별자(1~36자)
tenant_id 테넌트 ID 사용자가 로그인하는 테넌트의 식별자입니다.
클레임(선택) 보안 규칙의 auth 또는 request.auth 변수에 포함할 선택적인 커스텀 클레임
응답 페이로드
속성 이름 유형 설명
idToken 문자열 제공된 커스텀 토큰에서 생성된 Identity Platform ID 토큰
refreshToken 문자열 제공된 커스텀 토큰에서 생성된 Identity Platform 갱신 토큰
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}'

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 Identity Platform ID 토큰과 커스텀 토큰과 관련된 갱신 토큰이 포함됩니다.

샘플 응답

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

일반적인 오류 코드

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

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

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

메서드: POST

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

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

이메일 / 비밀번호로 가입

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

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
요청 본문 페이로드
속성 이름 유형 설명
이메일 문자열 사용자가 생성할 이메일입니다.
비밀번호 문자열 사용자가 생성할 비밀번호입니다.
returnSecureToken 부울 ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다.
tenantId 문자열 생성할 사용자의 테넌트 ID입니다. 멀티테넌시에만 사용됩니다.
응답 페이로드
속성 이름 유형 설명
idToken 문자열 새로 생성된 사용자의 Identity Platform ID 토큰입니다.
이메일 문자열 새로 생성된 사용자의 이메일입니다.
refreshToken 문자열 새로 생성된 사용자의 Identity Platform 갱신 토큰입니다.
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}'

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 새 계정에 연결된 Identity Platform 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 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다.
tenantId 문자열 사용자가 로그인하는 테넌트 ID입니다. 멀티테넌시에만 사용됩니다.
응답 페이로드
속성 이름 유형 설명
idToken 문자열 인증된 사용자의 Identity Platform ID 토큰입니다.
이메일 문자열 인증된 사용자의 이메일입니다.
refreshToken 문자열 인증된 사용자의 Identity Platform 갱신 토큰입니다.
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}'

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 Identity Platform 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 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다.
tenantId 문자열 사용자가 로그인하는 테넌트 ID입니다. 멀티테넌시에만 사용됩니다.
응답 페이로드
속성 이름 유형 설명
idToken 문자열 새로 생성된 사용자의 Identity Platform ID 토큰입니다.
이메일 문자열 사용자가 익명이므로 이 값은 비어 있어야 합니다.
refreshToken 문자열 새로 생성된 사용자의 Identity Platform 갱신 토큰입니다.
expiresIn 문자열 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 상태 코드로 표시됩니다. 응답에는 익명 사용자와 연결된 Identity Platform 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 사용자 인증 정보 반환을 강제할지 여부입니다.
tenantId 문자열 사용자가 로그인하는 테넌트 ID입니다. 멀티테넌시에만 사용됩니다.
응답 페이로드
속성 이름 유형 설명
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 문자열 인증된 사용자의 Identity Platform ID 토큰입니다.
refreshToken 문자열 인증된 사용자의 Identity Platform 갱신 토큰입니다.
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}'

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 인증된 사용자와 연결된 Identity Platform 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 상태 코드로 표시됩니다. 응답에는 인증된 사용자와 연결된 Identity Platform 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 상태 코드로 표시됩니다. 응답에는 인증된 사용자와 연결된 Identity Platform 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입니다.
tenantId 문자열 사용자가 로그인하는 테넌트 ID입니다. 멀티테넌시에만 사용됩니다.
응답 페이로드
속성 이름 유형 설명
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]"}'

성공적인 요청은 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'이어야 합니다.
이메일 문자열 사용자의 이메일 주소
tenantId 문자열 비밀번호 재설정을 요청하는 사용자의 테넌트 ID. 멀티테넌시에만 사용됩니다.
응답 페이로드
속성 이름 유형 설명
이메일 문자열 사용자의 이메일 주소

샘플 요청

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

콘텐츠 유형: application/json

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

성공적인 요청은 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 문자열 사용자의 새 비밀번호
tenantId 문자열 비밀번호 재설정을 요청하는 사용자의 테넌트 ID. 멀티테넌시에만 사용됩니다.
응답 페이로드
속성 이름 유형 설명
이메일 문자열 사용자의 이메일 주소
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]"}'

성공적인 요청은 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 문자열 사용자의 Identity Platform ID 토큰
이메일 문자열 사용자의 새 이메일
returnSecureToken 부울 ID 및 갱신 토큰 반환 여부입니다.
응답 페이로드
속성 이름 유형 설명
localId 문자열 현재 사용자의 uid입니다.
이메일 문자열 사용자의 이메일 주소
passwordHash 문자열 비밀번호의 해시 버전입니다.
providerUserInfo JSON 객체 목록 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다.
idToken 문자열 사용자의 새 Identity Platform ID 토큰입니다.
refreshToken 문자열 Identity Platform 갱신 토큰입니다.
expiresIn 문자열 ID 토큰이 만료될 때까지 남은 시간(초)입니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary \
'{"idToken":"[GCIP_ID_TOKEN]","email":"[user@example2.com]","returnSecureToken":true}'

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 사용자와 연결된 새 Identity Platform 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 문자열 사용자의 Identity Platform ID 토큰
비밀번호 문자열 사용자의 새 비밀번호
returnSecureToken 부울 ID 및 갱신 토큰 반환 여부입니다.
응답 페이로드
속성 이름 유형 설명
localId 문자열 현재 사용자의 uid입니다.
이메일 문자열 사용자의 이메일 주소
passwordHash 문자열 비밀번호의 해시 버전입니다.
providerUserInfo JSON 객체 목록 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다.
idToken 문자열 사용자의 새 Identity Platform ID 토큰입니다.
refreshToken 문자열 Identity Platform 갱신 토큰입니다.
expiresIn 문자열 ID 토큰이 만료될 때까지 남은 시간(초)입니다.

샘플 요청

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

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 사용자와 연결된 새 Identity Platform 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 문자열 사용자의 Identity Platform ID 토큰
displayName 문자열 사용자의 새 표시 이름
photoUrl 문자열 사용자의 새 사진 URL
deleteAttribute 문자열 목록 삭제할 속성 목록(예: 'DISPLAY_NAME' 또는 'PHOTO_URL'). 삭제하면 이러한 값이 null이 됩니다.
returnSecureToken 부울 ID 및 갱신 토큰 반환 여부입니다.
응답 페이로드
속성 이름 유형 설명
localId 문자열 현재 사용자의 uid입니다.
이메일 문자열 사용자의 이메일 주소
displayName 문자열 사용자의 새 표시 이름
photoUrl 문자열 사용자의 새 사진 URL
passwordHash 문자열 비밀번호의 해시 버전입니다.
providerUserInfo JSON 객체 목록 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다.
idToken 문자열 사용자의 새 Identity Platform ID 토큰입니다.
refreshToken 문자열 Identity Platform 갱신 토큰입니다.
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}'

성공적인 요청은 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 문자열 계정의 Identity Platform ID 토큰
응답 페이로드
속성 이름 유형 설명
사용자 JSON 객체 목록 지정된 Identity Platform ID 토큰과 연결된 계정. 자세한 내용은 아래를 참조하세요.
응답 페이로드(users 배열 콘텐츠)
속성 이름 유형 설명
localId 문자열 현재 사용자의 uid입니다.
이메일 문자열 계정 이메일입니다.
emailVerified 부울 계정 이메일 인증 여부입니다.
displayName 문자열 계정의 표시 이름입니다.
providerUserInfo JSON 객체 목록 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다.
photoUrl 문자열 계정의 사진 URL입니다.
passwordHash 문자열 비밀번호의 해시 버전입니다.
passwordUpdatedAt double 계정 비밀번호가 마지막으로 변경된 타임스탬프(밀리초)입니다.
validSince 문자열 Identity Platform ID 토큰이 취소된 것으로 간주되기 전에 경계를 표시하는 타임스탬프(초)입니다.
사용 중지됨 부울 계정의 사용 중지 여부입니다.
lastLoginAt 문자열 계정에 마지막으로 로그인한 타임스탬프(밀리초)입니다.
createdAt 문자열 계정이 생성된 타임스탬프(밀리초)입니다.
customAuth 부울 개발자가 계정을 인증했는지 여부입니다.
tenantId 문자열 사용자의 테넌트 ID입니다. 멀티테넌시에서만 반환됩니다.

샘플 요청

curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"idToken":"[GCIP_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

콘텐츠 유형: application/json

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

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 인증된 사용자와 연결된 Identity Platform 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자 이상이어야 합니다.

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

메서드: POST

콘텐츠 유형: application/json

엔드포인트
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
요청 본문 페이로드
속성 이름 유형 설명
idToken 문자열 사용자 인증 정보를 연결할 계정의 Identity Platform 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 문자열 인증된 사용자의 Identity Platform ID 토큰입니다.
refreshToken 문자열 인증된 사용자의 Identity Platform 갱신 토큰입니다.
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":"[GCIP_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 인증된 사용자와 연결된 Identity Platform 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":"[GCIP_ID_TOKEN]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 인증된 사용자와 연결된 Identity Platform 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":"[GCIP_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'

성공적인 요청은 200 OK HTTP 상태 코드로 표시됩니다. 응답에는 인증된 사용자와 연결된 Identity Platform 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 문자열 계정의 Identity Platform 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":"[GCIP_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

콘텐츠 유형: application/json

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

샘플 요청

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

성공적인 요청은 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 문자열 이메일 인증을 위해 사용자의 이메일로 전송되는 액션 코드
tenantId 문자열 이메일을 인증하는 사용자의 테넌트 ID. 멀티테넌시에만 사용됩니다.
응답 페이로드
속성 이름 유형 설명
이메일 문자열 계정 이메일입니다.
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]"}'

성공적인 요청은 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 문자열 삭제할 사용자의 Identity Platform ID 토큰
응답 페이로드
속성 이름 유형 설명

샘플 요청

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

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

일반적인 오류 코드

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

오류 처리

Identity Platform에서 반환하는 모든 오류는 다음 형식을 사용합니다.

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

message 필드에서 오류 코드를 가져옵니다.