REST API 사용
이 문서에서는 Identity Platform REST API를 사용하여 사용자 로그인 및 토큰 작업 등의 일반적인 사용자 작업을 수행하는 방법을 보여줍니다.
시작하기 전에
REST API를 사용하려면 Identity Platform API 키가 필요합니다. 키를 가져오려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 ID 공급업체 페이지로 이동합니다.
ID 공급업체 페이지로 이동애플리케이션 설정 세부정보를 클릭합니다.
apiKey
필드를 복사합니다.
모든 API 호출에는 HTTPS가 필요합니다.
API 호출
커스텀 토큰을 ID와 갱신 토큰으로 교환
signInWithCustomToken
엔드포인트에 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: 커스텀 토큰이 다른 Google Cloud 프로젝트에 해당합니다.
갱신 토큰을 ID 토큰으로 교환
securetoken.googleapis.com
엔드포인트에 HTTP POST
요청을 실행하여 Identity Platform ID 토큰을 갱신할 수 있습니다.
메서드: POST
Content-Type: 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 | 문자열 | Google Cloud 프로젝트 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: 갱신 토큰이 제공되지 않았습니다.
- PROJECT_NUMBER_MISMATCH: 갱신 토큰의 프로젝트 번호가 제공된 API 키의 프로젝트 번호와 일치하지 않습니다.
이메일 / 비밀번호로 가입
인증 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입니다. |
등록됨 | 불리언 | 이메일이 기존 계정용인지 여부입니다. |
샘플 요청
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 | 문자열 목록 | 사용자가 이전에 로그인한 공급업체의 목록입니다. |
등록됨 | 불리언 | 이메일이 기존 계정용인지 여부입니다. |
샘플 요청
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 토큰이 취소된 것으로 간주되기 전에 경계를 표시하는 타임스탬프(초)입니다. |
disabled | 불리언 | 계정의 사용 중지 여부입니다. |
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자 이상이어야 합니다.
OAuth 사용자 인증 정보로 연결
인증 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
필드에서 오류 코드를 가져옵니다.