API 사용량
REST API를 통해 Firebase 인증 백엔드를 쿼리할 수 있습니다. 이는 Kubernetes와 같은 다양한 작업에 신규 사용자 생성, 기존 사용자 로그인, 해당 사용자 수정 또는 삭제 등의 작업을 수행합니다.
이 문서에서 API_KEY
는 웹 API 키를 가리킵니다.
이는
프로젝트 설정
페이지로 이동합니다.
커스텀 토큰을 ID와 갱신 토큰으로 교환
인증 verifyCustomToken
엔드포인트에 HTTP POST
요청을 실행하여 커스텀 인증 토큰을 ID 및 갱신 토큰으로 교환할 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
token | 문자열 | ID 및 갱신 토큰 쌍을 만들 Firebase 인증 맞춤 토큰입니다. |
returnSecureToken | 부울 | ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
idToken | 문자열 | 제공된 커스텀 토큰에서 생성된 Firebase 인증 ID 토큰입니다. |
refreshToken | 문자열 | 제공된 커스텀 토큰에서 생성된 Firebase 인증 갱신 토큰입니다. |
expiresIn | 문자열 | ID 토큰이 만료될 때까지 남은 시간(초)입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"token":"[CUSTOM_TOKEN]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에 연결된 Firebase ID 토큰 및 갱신 토큰이 포함됩니다.
커스텀 토큰으로 교체합니다.
샘플 응답
{ "idToken": "[ID_TOKEN]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
일반적인 오류 코드
- INVALID_CUSTOM_TOKEN: 커스텀 토큰 형식이 잘못되었거나 어떠한 이유로 유효하지 않은 토큰입니다(예: 만료된 토큰, 잘못된 서명 등).
- CREDENTIAL_MISMATCH: 맞춤 토큰이 다른 Firebase 프로젝트에 해당합니다.
갱신 토큰을 ID 토큰으로 교환
HTTP를 실행하여 Firebase ID 토큰을 갱신할 수 있습니다.
securetoken.googleapis.com
엔드포인트에 대한 POST
요청
메서드: POST
콘텐츠 유형: application/x-www-form-urlencoded
엔드포인트https://securetoken.googleapis.com/v1/token?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
grant_type | 문자열 | 갱신 토큰의 부여 유형으로, 항상 'refresh_token'입니다. |
refresh_token | 문자열 | Firebase 인증 갱신 토큰입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
expires_in | 문자열 | ID 토큰이 만료될 때까지 남은 시간(초)입니다. |
token_type | 문자열 | 갱신 토큰의 유형으로, 항상 'Bearer'입니다. |
refresh_token | 문자열 | 요청에 제공된 Firebase 인증 갱신 토큰 또는 새 갱신 토큰입니다. |
id_token | 문자열 | Firebase 인증 ID 토큰입니다. |
user_id | 문자열 | 제공된 ID 토큰에 해당하는 uid |
project_id | 문자열 | Firebase 프로젝트 ID입니다. |
샘플 요청
curl 'https://securetoken.googleapis.com/v1/token?key=[API_KEY]' \ -H 'Content-Type: application/x-www-form-urlencoded' \ --data 'grant_type=refresh_token&refresh_token=[REFRESH_TOKEN]'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에 새 Firebase ID 토큰과 갱신 토큰이 포함됩니다.
샘플 응답
{ "expires_in": "3600", "token_type": "Bearer", "refresh_token": "[REFRESH_TOKEN]", "id_token": "[ID_TOKEN]", "user_id": "tRcfmLH7o2XrNELi...", "project_id": "1234567890" }
일반적인 오류 코드
- TOKEN_EXPIRED: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
- USER_DISABLED: 관리자가 사용자 계정을 사용 중지했습니다.
- USER_NOT_FOUND: 갱신 토큰에 해당하는 사용자를 찾을 수 없습니다. 사용자가 삭제되었을 수 있습니다.
- API 키가 올바르지 않습니다. 유효한 API 키를 전달하세요. (잘못된 API 키 제공)
- INVALID_REFRESH_TOKEN: 잘못된 갱신 토큰이 제공됩니다.
- 잘못된 JSON 페이로드가 수신되었습니다. 알 수 없는 이름 \"refresh_tokens \": 쿼리 매개변수를 결합할 수 없습니다. 요청 메시지에서 'refresh_tokens' 필드를 찾을 수 없습니다.
- INVALID_GRANT_TYPE: 지정된 부여 유형이 잘못되었습니다.
- MISSING_REFRESH_TOKEN: 갱신 토큰이 제공되지 않았습니다.
- PROJECT_NUMBER_MISMATCH: 갱신 토큰의 프로젝트 번호가 제공된 API 키의 프로젝트 번호와 일치하지 않습니다.
이메일 / 비밀번호로 가입
인증 signupNewUser
엔드포인트에 HTTP POST
요청을 실행하여 새 이메일 및 비밀번호 사용자를 만들 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 문자열 | 사용자가 생성할 이메일입니다. |
비밀번호 | 문자열 | 사용자가 생성할 비밀번호입니다. |
returnSecureToken | 부울 | ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
idToken | 문자열 | 새로 생성된 사용자의 Firebase 인증 ID 토큰입니다. |
이메일 | 문자열 | 새로 생성된 사용자의 이메일입니다. |
refreshToken | 문자열 | 새로 생성된 사용자의 Firebase 인증 갱신 토큰입니다. |
expiresIn | 문자열 | ID 토큰이 만료될 때까지 남은 시간(초)입니다. |
localId | 문자열 | 새로 생성된 사용자의 uid입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"email":"[user@example.com]","password":"[PASSWORD]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에 연결된 Firebase ID 토큰 및 갱신 토큰이 포함됩니다.
새 계정으로 로그인합니다.
샘플 응답
{ "idToken": "[ID_TOKEN]", "email": "[user@example.com]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "tRcfmLH7..." }
일반적인 오류 코드
- EMAIL_EXISTS: 이메일 주소가 다른 계정에서 이미 사용 중입니다.
- OPERATION_NOT_ALLOWED: 이 프로젝트에서 비밀번호 로그인이 사용 중지되었습니다.
- TOO_MANY_ATTEMPTS_TRY_LATER: 비정상적인 활동으로 인해 이 기기의 모든 요청이 차단되었습니다. 나중에 다시 시도하세요.
이메일 / 비밀번호로 로그인
인증 verifyPassword
엔드포인트에 HTTP POST
요청을 실행하여 이메일과 비밀번호로 사용자를 로그인할 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 문자열 | 사용자가 로그인할 때 사용하는 이메일입니다. |
비밀번호 | 문자열 | 계정 비밀번호입니다. |
returnSecureToken | 부울 | ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
idToken | 문자열 | 인증된 사용자의 Firebase 인증 ID 토큰입니다. |
이메일 | 문자열 | 인증된 사용자의 이메일입니다. |
refreshToken | 문자열 | 인증된 사용자의 Firebase 인증 갱신 토큰입니다. |
expiresIn | 문자열 | ID 토큰이 만료될 때까지 남은 시간(초)입니다. |
localId | 문자열 | 인증된 사용자의 uid입니다. |
registered | 부울 | 이메일이 기존 계정용인지 여부입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"email":"[user@example.com]","password":"[PASSWORD]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에 연결된 Firebase ID 토큰 및 갱신 토큰이 포함됩니다.
기존 이메일/비밀번호 계정으로 로그인
샘플 응답
{ "localId": "ZY1rJK0eYLg...", "email": "[user@example.com]", "displayName": "", "idToken": "[ID_TOKEN]", "registered": true, "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
일반적인 오류 코드
- EMAIL_NOT_FOUND: 이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.
- INVALID_PASSWORD: 비밀번호가 잘못되었거나 사용자에게 비밀번호가 없습니다.
- USER_DISABLED: 관리자가 사용자 계정을 사용 중지했습니다.
익명으로 로그인
인증 요청 signupNewUser
엔드포인트에 HTTP POST
요청을 실행하여 익명으로 사용자를 로그인할 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
returnSecureToken | 부울 | ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
idToken | 문자열 | 새로 생성된 사용자의 Firebase 인증 ID 토큰입니다. |
이메일 | 문자열 | 사용자가 익명이므로 이 값은 비어 있어야 합니다. |
refreshToken | 문자열 | 새로 생성된 사용자의 Firebase 인증 갱신 토큰입니다. |
expiresIn | 문자열 | ID 토큰이 만료될 때까지 남은 시간(초)입니다. |
localId | 문자열 | 새로 생성된 사용자의 uid입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에 연결된 Firebase ID 토큰 및 갱신 토큰이 포함됩니다.
익명 사용자와 공유하게 됩니다.
샘플 응답
{ "idToken": "[ID_TOKEN]", "email": "", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "Jws4SVjpT..." }
일반적인 오류 코드
- OPERATION_NOT_ALLOWED: 이 프로젝트에 대한 익명 사용자 로그인이 사용 중지되어 있습니다.
OAuth 사용자 인증 정보로 로그인
인증 verifyAssertion
엔드포인트에 HTTP POST
요청을 실행하여 OAuth 사용자 인증 정보로 사용자를 로그인할 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
requestUri | 문자열 | IDP가 사용자를 다시 리디렉션하는 URI입니다. |
postBody | 문자열 | OAuth 사용자 인증 정보(ID 토큰 또는 액세스 토큰) 및 사용자 인증 정보를 발급하는 공급업체 ID를 포함합니다. |
returnSecureToken | 부울 | ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다. |
returnIdpCredential | 부울 | FEDERATED_USER_ID_ALREADY_LINKED 및 EMAIL_EXISTS 오류에 대해 OAuth 사용자 인증 정보 반환을 강제할지 여부입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
federatedId | 문자열 | 고유 ID는 IdP 계정을 식별합니다. |
providerId | 문자열 | 연결된 공급업체 ID(예: Google 공급업체의 경우 'google.com')입니다. |
localId | 문자열 | 인증된 사용자의 uid입니다. |
emailVerified | 부울 | 로그인 이메일 인증 여부입니다. |
이메일 | 문자열 | 계정 이메일입니다. |
oauthIdToken | 문자열 | OIDC ID 토큰(있는 경우)입니다. |
oauthAccessToken | 문자열 | OAuth 액세스 토큰(있는 경우)입니다. |
oauthTokenSecret | 문자열 | OAuth 1.0 토큰 보안 비밀(있는 경우)입니다. |
rawUserInfo | 문자열 | 제공된 OAuth 사용자 인증 정보에 해당하는 모든 IdP 데이터가 포함된 문자열화된 JSON 응답입니다. |
firstName | 문자열 | 계정의 성을 제외한 이름입니다. |
lastName | 문자열 | 계정의 성입니다. |
fullName | 문자열 | 계정의 전체 이름입니다. |
displayName | 문자열 | 계정의 표시 이름입니다. |
photoUrl | 문자열 | 계정의 사진 URL입니다. |
idToken | 문자열 | 인증된 사용자의 Firebase 인증 ID 토큰입니다. |
refreshToken | 문자열 | 인증된 사용자의 Firebase 인증 갱신 토큰입니다. |
expiresIn | 문자열 | ID 토큰이 만료될 때까지 남은 시간(초)입니다. |
needConfirmation | 부울 | 동일한 사용자 인증 정보로 다른 계정이 이미 존재하는지 여부입니다. 사용자는 원래 계정에 로그인한 후 현재 사용자 인증 정보를 해당 계정에 연결해야 합니다. |
OAuth ID 토큰이 포함된 샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
성공적인 요청은 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: 제공된 인증 사용자 인증 정보가 잘못되었거나 만료되었습니다.
이메일 공급업체 가져오기
인증 createAuthUri
엔드포인트에 HTTP POST
요청을 실행하여 지정된 이메일과 연결된 모든 공급업체를 확인할 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
identifier | 문자열 | 사용자의 이메일 주소 |
continueUri | 문자열 | IDP가 사용자를 다시 리디렉션하는 URI입니다. 이 사용 사례에서는 현재 URL입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
allProviders | 문자열 목록 | 사용자가 이전에 로그인한 공급업체의 목록입니다. |
registered | 부울 | 이메일이 기존 계정용인지 여부입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"identifier":"[user@example.com]","continueUri":"[http://localhost:8080/app]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 이메일과 연결된 공급업체 목록이 포함됩니다.
샘플 응답
{ "allProviders": [ "password", "google.com" ], "registered": true }
일반적인 오류 코드
- INVALID_EMAIL: 이메일 주소의 형식이 잘못되었습니다.
비밀번호 재설정 이메일 보내기
인증 getOobConfirmationCode
엔드포인트에 HTTP POST
요청을 실행하여 비밀번호 재설정 이메일을 보낼 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
속성 이름 | 설명 |
---|---|
X-Firebase-Locale | 사용자 언어에 해당하는 언어 코드. 이를 통과하면 사용자에게 전송된 비밀번호 재설정 이메일이 현지화됩니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
requestType | 문자열 | 반환할 OOB 코드의 종류. 비밀번호를 재설정하려면 'PASSWORD_RESET'이어야 합니다. |
이메일 | 문자열 | 사용자의 이메일 주소 |
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 문자열 | 사용자의 이메일 주소 |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"requestType":"PASSWORD_RESET","email":"[user@example.com]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "email": "[user@example.com]" }
일반적인 오류 코드
- EMAIL_NOT_FOUND: 이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.
비밀번호 재설정 코드 확인
Auth resetPassword
엔드포인트에 HTTP POST
요청을 실행하여 비밀번호 재설정 코드를 확인할 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
oobCode | 문자열 | 비밀번호 재설정을 위해 사용자의 이메일로 전송된 이메일 작업 코드 |
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 문자열 | 사용자의 이메일 주소 |
requestType | 문자열 | 이메일 작업 코드의 유형. 'PASSWORD_RESET'이어야 합니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "email": "[user@example.com]", "requestType": "PASSWORD_RESET" }
일반적인 오류 코드
- OPERATION_NOT_ALLOWED: 이 프로젝트에서 비밀번호 로그인이 사용 중지되었습니다.
- EXPIRED_OOB_CODE: 작업 코드가 만료되었습니다.
- INVALID_OOB_CODE: 작업 코드가 잘못되었습니다. 코드 형식 잘못되었거나 만료되었거나 이미 사용된 경우에 발생할 수 있습니다.
비밀번호 재설정 확인
인증 resetPassword
엔드포인트에 HTTP POST
요청을 실행하여 비밀번호 재설정 변경을 적용할 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
oobCode | 문자열 | 비밀번호 재설정을 위해 사용자의 이메일로 전송된 이메일 작업 코드 |
newPassword | 문자열 | 사용자의 새 비밀번호 |
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 문자열 | 사용자의 이메일 주소 |
requestType | 문자열 | 이메일 작업 코드의 유형. 'PASSWORD_RESET'이어야 합니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]","newPassword":"[NEW_PASSWORD]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "email": "[user@example.com]", "requestType": "PASSWORD_RESET" }
일반적인 오류 코드
- OPERATION_NOT_ALLOWED: 이 프로젝트에서 비밀번호 로그인이 사용 중지되었습니다.
- EXPIRED_OOB_CODE: 작업 코드가 만료되었습니다.
- INVALID_OOB_CODE: 작업 코드가 잘못되었습니다. 코드 형식 잘못되었거나 만료되었거나 이미 사용된 경우에 발생할 수 있습니다.
- USER_DISABLED: 관리자가 사용자 계정을 사용 중지했습니다.
이메일 변경
인증 setAccountInfo
엔드포인트에 HTTP POST
요청을 실행하여 사용자의 이메일을 변경할 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
속성 이름 | 설명 |
---|---|
X-Firebase-Locale | 사용자 언어에 해당하는 언어 코드. 이를 전달하면 사용자에게 전송되는 이메일 변경 취소가 현지화됩니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
idToken | 문자열 | 사용자의 Firebase 인증 ID 토큰입니다. |
이메일 | 문자열 | 사용자의 새 이메일 |
returnSecureToken | 부울 | ID 및 갱신 토큰 반환 여부입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
localId | 문자열 | 현재 사용자의 uid입니다. |
이메일 | 문자열 | 사용자의 이메일 주소 |
passwordHash | 문자열 | 비밀번호의 해시 버전입니다. |
providerUserInfo | JSON 객체 목록 | 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다. |
idToken | 문자열 | 사용자의 새 Firebase 인증 ID 토큰입니다. |
refreshToken | 문자열 | Firebase 인증 갱신 토큰입니다. |
expiresIn | 문자열 | ID 토큰이 만료될 때까지 남은 시간(초)입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[FIREBASE_ID_TOKEN]","email":"[user@example2.com]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에 연결된 새 Firebase ID 토큰 및 갱신 토큰이 포함됩니다.
.
샘플 응답
{ "localId": "tRcfmLH7o2...", "email": "[user@example2.com]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "[user@example2.com]" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
일반적인 오류 코드
- EMAIL_EXISTS: 이메일 주소가 다른 계정에서 이미 사용 중입니다.
- INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
비밀번호 변경
인증 setAccountInfo
엔드포인트에 HTTP POST
요청을 실행하여 사용자의 비밀번호를 변경할 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
idToken | 문자열 | 사용자의 Firebase 인증 ID 토큰입니다. |
비밀번호 | 문자열 | 사용자의 새 비밀번호 |
returnSecureToken | 부울 | ID 및 갱신 토큰 반환 여부입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
localId | 문자열 | 현재 사용자의 uid입니다. |
이메일 | 문자열 | 사용자의 이메일 주소 |
passwordHash | 문자열 | 비밀번호의 해시 버전입니다. |
providerUserInfo | JSON 객체 목록 | 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다. |
idToken | 문자열 | 사용자의 새 Firebase 인증 ID 토큰입니다. |
refreshToken | 문자열 | Firebase 인증 갱신 토큰입니다. |
expiresIn | 문자열 | ID 토큰이 만료될 때까지 남은 시간(초)입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[FIREBASE_ID_TOKEN]","password":"[NEW_PASSWORD]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에 연결된 새 Firebase ID 토큰 및 갱신 토큰이 포함됩니다.
.
샘플 응답
{ "localId": "tRcfmLH7o2...", "email": "[user@example.com]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "[user@example.com]" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
일반적인 오류 코드
- INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
- WEAK_PASSWORD: 비밀번호는 6자 이상이어야 합니다.
프로필 업데이트
인증 setAccountInfo
엔드포인트에 HTTP POST
요청을 실행하여 사용자 프로필(표시 이름 / 사진 URL)을 업데이트할 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
idToken | 문자열 | 사용자의 Firebase 인증 ID 토큰입니다. |
displayName | 문자열 | 사용자의 새 표시 이름 |
photoUrl | 문자열 | 사용자의 새 사진 URL |
deleteAttribute | 문자열 목록 | 삭제할 속성 목록(예: 'DISPLAY_NAME' 또는 'PHOTO_URL'). 삭제하면 이러한 값이 null이 됩니다. |
returnSecureToken | 부울 | ID 및 갱신 토큰 반환 여부입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
localId | 문자열 | 현재 사용자의 uid입니다. |
이메일 | 문자열 | 사용자의 이메일 주소 |
displayName | 문자열 | 사용자의 새 표시 이름 |
photoUrl | 문자열 | 사용자의 새 사진 URL |
passwordHash | 문자열 | 비밀번호의 해시 버전입니다. |
providerUserInfo | JSON 객체 목록 | 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다. |
idToken | 문자열 | 사용자의 새 Firebase 인증 ID 토큰입니다. |
refreshToken | 문자열 | Firebase 인증 갱신 토큰입니다. |
expiresIn | 문자열 | ID 토큰이 만료될 때까지 남은 시간(초)입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[ID_TOKEN]","displayName":"[NAME]","photoUrl":"[URL]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "localId": "tRcfmLH...", "email": "user@example2.com", "displayName": "John Doe", "photoUrl": "[http://localhost:8080/img1234567890/photo.png]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example2.com", "displayName": "John Doe", "photoUrl": "http://localhost:8080/img1234567890/photo.png" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
일반적인 오류 코드
- INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
사용자 데이터 가져오기
인증 getAccountInfo
엔드포인트에 HTTP POST
요청을 실행하여 사용자 데이터를 가져올 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
idToken | 문자열 | 계정의 Firebase ID 토큰입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
사용자 | JSON 객체 목록 | 지정된 Firebase ID 토큰과 연결된 계정입니다. 자세한 내용은 아래를 참조하세요. |
users
배열 콘텐츠)속성 이름 | 유형 | 설명 |
---|---|---|
localId | 문자열 | 현재 사용자의 uid입니다. |
이메일 | 문자열 | 계정 이메일입니다. |
emailVerified | 부울 | 계정 이메일 인증 여부입니다. |
displayName | 문자열 | 계정의 표시 이름입니다. |
providerUserInfo | JSON 객체 목록 | 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다. |
photoUrl | 문자열 | 계정의 사진 URL입니다. |
passwordHash | 문자열 | 비밀번호의 해시 버전입니다. |
passwordUpdatedAt | double | 계정 비밀번호가 마지막으로 변경된 타임스탬프(밀리초)입니다. |
validSince | 문자열 | 경계를 표시하는 타임스탬프(초)로, 그 전의 Firebase ID 토큰이 생성됩니다. 취소된 것으로 간주됩니다. |
사용 중지됨 | 부울 | 계정의 사용 중지 여부입니다. |
lastLoginAt | 문자열 | 계정에 마지막으로 로그인한 타임스탬프(밀리초)입니다. |
createdAt | 문자열 | 계정이 생성된 타임스탬프(밀리초)입니다. |
customAuth | 부울 | 개발자가 계정을 인증했는지 여부입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 계정과 연결된 모든 사용자 정보가 포함됩니다.
샘플 응답
{ "users": [ { "localId": "ZY1rJK0...", "email": "user@example.com", "emailVerified": false, "displayName": "John Doe", "providerUserInfo": [ { "providerId": "password", "displayName": "John Doe", "photoUrl": "http://localhost:8080/img1234567890/photo.png", "federatedId": "user@example.com", "email": "user@example.com", "rawId": "user@example.com", "screenName": "user@example.com" } ], "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "passwordHash": "...", "passwordUpdatedAt": 1.484124177E12, "validSince": "1484124177", "disabled": false, "lastLoginAt": "1484628946000", "createdAt": "1484124142000", "customAuth": false } ] }
일반적인 오류 코드
- INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
- USER_NOT_FOUND: 이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.
이메일/비밀번호로 연결
인증 setAccountInfo
엔드포인트에 HTTP POST
요청을 실행하여 현재 사용자에게 이메일/비밀번호를 연결할 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
idToken | 문자열 | 사용자 인증 정보를 연결하려는 계정의 Firebase ID 토큰입니다. |
이메일 | 문자열 | 계정에 연결할 이메일입니다. |
비밀번호 | 문자열 | 계정의 새 비밀번호입니다. |
returnSecureToken | 문자열 | ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
localId | 문자열 | 현재 사용자의 uid입니다. |
이메일 | 문자열 | 계정 이메일입니다. |
displayName | 문자열 | 계정의 표시 이름입니다. |
photoUrl | 문자열 | 계정의 사진 URL입니다. |
passwordHash | 문자열 | 비밀번호의 해시 버전입니다. |
providerUserInfo | JSON 객체 목록 | 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다. |
emailVerified | 부울 | 계정 이메일 인증 여부입니다. |
idToken | 문자열 | 사용자의 새 Firebase 인증 ID 토큰입니다. |
refreshToken | 문자열 | Firebase 인증 갱신 토큰입니다. |
expiresIn | 문자열 | ID 토큰이 만료될 때까지 남은 시간(초)입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[ID_TOKEN]","email":"[user@example.com]","password":"[PASS]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는
확인할 수 있습니다
샘플 응답
{ "localId": "huDwUz...", "email": "user@example.com", "displayName": "John Doe", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example.com" } ], "idToken": "[ID_TOKEN]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "emailVerified": false }
일반적인 오류 코드
- CREDENTIAL_TOO_OLD_LOGIN_AGAIN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
- TOKEN_EXPIRED: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
- INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
- WEAK_PASSWORD: 비밀번호는 6자 이상이어야 합니다.
OAuth 사용자 인증 정보로 연결
인증 verifyAssertion
엔드포인트에 HTTP POST
요청을 실행하여 OAuth 사용자 인증 정보를 사용자에 연결할 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
idToken | 문자열 | 사용자 인증 정보를 연결하려는 계정의 Firebase ID 토큰입니다. |
requestUri | 문자열 | IDP가 사용자를 다시 리디렉션하는 URI입니다. |
postBody | 문자열 | OAuth 사용자 인증 정보(ID 토큰 또는 액세스 토큰) 및 사용자 인증 정보를 발급하는 공급업체 ID를 포함합니다. |
returnSecureToken | 부울 | ID 및 갱신 토큰 반환 여부입니다. 항상 참이어야 합니다. |
returnIdpCredential | 부울 | FEDERATED_USER_ID_ALREADY_LINKED 및 EMAIL_EXISTS 오류에 대해 OAuth 사용자 인증 정보 반환을 강제할지 여부입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
federatedId | 문자열 | 고유 ID는 IdP 계정을 식별합니다. |
providerId | 문자열 | 연결된 공급업체 ID(예: Google 공급업체의 경우 'google.com')입니다. |
localId | 문자열 | 인증된 사용자의 uid입니다. |
emailVerified | 부울 | 로그인 이메일 인증 여부입니다. |
이메일 | 문자열 | 계정 이메일입니다. |
oauthIdToken | 문자열 | OIDC ID 토큰(있는 경우)입니다. |
oauthAccessToken | 문자열 | OAuth 액세스 토큰(있는 경우)입니다. |
oauthTokenSecret | 문자열 | OAuth 1.0 토큰 보안 비밀(있는 경우)입니다. |
rawUserInfo | 문자열 | 제공된 OAuth 사용자 인증 정보에 해당하는 모든 IdP 데이터가 포함된 문자열화된 JSON 응답입니다. |
firstName | 문자열 | 계정의 성을 제외한 이름입니다. |
lastName | 문자열 | 계정의 성입니다. |
fullName | 문자열 | 계정의 전체 이름입니다. |
displayName | 문자열 | 계정의 표시 이름입니다. |
photoUrl | 문자열 | 계정의 사진 URL입니다. |
idToken | 문자열 | 인증된 사용자의 Firebase 인증 ID 토큰입니다. |
refreshToken | 문자열 | 인증된 사용자의 Firebase 인증 갱신 토큰입니다. |
expiresIn | 문자열 | ID 토큰이 만료될 때까지 남은 시간(초)입니다. |
OAuth ID 토큰이 포함된 샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","idToken":"[FIREBASE_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'
성공적인 요청은 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
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
idToken | 문자열 | 계정의 Firebase ID 토큰입니다. |
deleteProvider | 문자열 목록 | 연결을 해제할 공급업체 ID 목록(예: 'google.com', 'password' 등) |
속성 이름 | 유형 | 설명 |
---|---|---|
localId | 문자열 | 현재 사용자의 uid입니다. |
이메일 | 문자열 | 계정 이메일입니다. |
displayName | 문자열 | 계정의 표시 이름입니다. |
photoUrl | 문자열 | 계정의 사진 URL입니다. |
passwordHash | 문자열 | 비밀번호의 해시 버전입니다. |
providerUserInfo | JSON 객체 목록 | 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다. |
emailVerified | 부울 | 계정 이메일 인증 여부입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]","deleteProvider":["[facebook.com]"]}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "localId": "huDwUz...", "email": "user@example.com", "displayName": "John Doe", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "passwordHash": "...", "providerUserInfo": [ { "providerId": "google.com", "federatedId": "1234567890", "displayName": "John Doe", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg" }, { "providerId": "password", "federatedId": "user@example.com" } ], "emailVerified": "true" }
일반적인 오류 코드
- INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
이메일 인증 전송
인증 getOobConfirmationCode
엔드포인트에 HTTP POST
요청을 실행하여 현재 사용자의 이메일 인증을 보낼 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
속성 이름 | 설명 |
---|---|
X-Firebase-Locale | 사용자 언어에 해당하는 언어 코드. 이를 전달하면 사용자에게 전송되는 이메일 인증이 현지화됩니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
requestType | 문자열 | 전송할 확인 코드 유형. 항상 'VERIFY_EMAIL'이어야 합니다. |
idToken | 문자열 | 확인할 사용자의 Firebase ID 토큰입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 문자열 | 계정 이메일입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"requestType":"VERIFY_EMAIL","idToken":"[FIREBASE_ID_TOKEN]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "email": "user@example.com" }
일반적인 오류 코드
- INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
- USER_NOT_FOUND: 이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.
이메일 인증 확인
인증 setAccountInfo
엔드포인트에 HTTP POST
요청을 실행하여 이메일 인증 코드를 확인할 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
oobCode | 문자열 | 이메일 인증을 위해 사용자의 이메일로 전송되는 액션 코드 |
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 문자열 | 계정 이메일입니다. |
displayName | 문자열 | 계정의 표시 이름입니다. |
photoUrl | 문자열 | 계정의 사진 URL입니다. |
passwordHash | 문자열 | 비밀번호 해시 |
providerUserInfo | JSON 객체 목록 | 'providerId' 및 'federatedId'를 포함하는 연결된 모든 연결된 공급업체 객체의 목록입니다. |
emailVerified | 부울 | 계정 이메일 인증 여부입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"oobCode":"[VERIFICATION_CODE]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "localId": "FhyStE...", "email": "user@example.com", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example.com" } ] }
일반적인 오류 코드
- EXPIRED_OOB_CODE: 작업 코드가 만료되었습니다.
- INVALID_OOB_CODE: 작업 코드가 잘못되었습니다. 코드 형식 잘못되었거나 만료되었거나 이미 사용된 경우에 발생할 수 있습니다.
- USER_DISABLED: 관리자가 사용자 계정을 사용 중지했습니다.
- EMAIL_NOT_FOUND: 이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.
계정 삭제
인증 deleteAccount
엔드포인트에 HTTP POST
요청을 실행하여 현재 사용자를 삭제할 수 있습니다.
메서드: POST
콘텐츠 유형: application/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]
속성 이름 | 유형 | 설명 |
---|---|---|
idToken | 문자열 | 삭제할 사용자의 Firebase ID 토큰입니다. |
속성 이름 | 유형 | 설명 |
---|
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
일반적인 오류 코드
- INVALID_ID_TOKEN: 사용자의 사용자 인증 정보가 더 이상 유효하지 않습니다. 사용자가 다시 로그인해야 합니다.
- USER_NOT_FOUND: 이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.
Firebase 인증 에뮬레이터
Firebase 로컬 에뮬레이터 도구 모음에는 다음과 같은 용도로 사용할 수 있는 인증 에뮬레이터가 포함되어 있습니다. 인증 흐름의 로컬 프로토타입 제작 및 테스트 에뮬레이터는 다음 REST를 노출합니다. 엔드포인트가 있습니다
<ph type="x-smartling-placeholder">사용자 계정 삭제
상태에 관계없이 지정된 프로젝트의 모든 계정을 삭제합니다.
메서드: DELETE
엔드포인트
9099
는 인증 에뮬레이터의 기본 포트입니다. 터미널 확인
출력됩니다.
http://localhost:9099/emulator/v1/projects/{project-id}/accounts
에뮬레이터 구성 가져오기
지정된 프로젝트의 에뮬레이터별 구성을 가져옵니다.
메서드: GET
엔드포인트
9099
는 인증 에뮬레이터의 기본 포트입니다. 터미널 확인
출력됩니다.
http://localhost:9099/emulator/v1/projects/{project-id}/config
속성 이름 | 유형 | 설명 |
---|---|---|
로그인 | 객체 | 단일 키 allowDuplicateEmails (불리언)를 포함하는 signIn 구성 객체입니다. |
에뮬레이터 구성 패치 적용
지정된 프로젝트의 에뮬레이터별 구성을 업데이트합니다.
방법: PATCH
엔드포인트
9099
는 인증 에뮬레이터의 기본 포트입니다. 터미널 확인
출력됩니다.
콘텐츠 유형: application/json
http://localhost:9099/emulator/v1/projects/{project-id}/config
속성 이름 | 유형 | 설명 |
---|---|---|
로그인 | 객체 | 단일 키 allowDuplicateEmails (불리언)를 포함하는 원하는 signIn 구성 객체입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
로그인 | 객체 | 단일 키 allowDuplicateEmails (불리언)를 포함하는 요청 후 signIn 구성 객체 |
대역 외 인증 코드 검색
테스트 중인 인증 흐름에서 일반적으로 대역 외 코드 (예: 이메일 인증 코드, 비밀번호 재설정 코드)이 포함될 때까지 에뮬레이터가 이러한 코드를 사용됩니다.
메서드: GET
엔드포인트
9099
는 인증 에뮬레이터의 기본 포트입니다. 터미널 확인
출력됩니다.
http://localhost:9099/emulator/v1/projects/{project-id}/oobCodes
속성 이름 | 유형 | 설명 |
---|---|---|
oob 코드 | 배열 | 대기 중인 모든 확인 코드의 세부정보를 포함하는 객체의 배열입니다.
각 객체에는 email (문자열), oobCode (문자열),
oobLink (문자열) 및 requestType (문자열) |
SMS 인증 코드 가져오기
전화/SMS 인증 흐름을 테스트하는 경우 에뮬레이터가 이러한 SMS 코드를 내부적으로 저장합니다. 사용하지 마세요.
메서드: GET
엔드포인트
9099
는 인증 에뮬레이터의 기본 포트입니다. 터미널 확인
출력됩니다.
http://localhost:9099/emulator/v1/projects/{project-id}/verificationCodes
속성 이름 | 유형 | 설명 |
---|---|---|
인증 코드 | 배열 | 대기 중인 모든 인증 코드의 세부정보를 포함하는 객체의 배열입니다.
각 객체에는 phoneNumber (문자열)과 sessionCode (문자열)이 포함됩니다. |
오류 응답
오류 응답 형식
위의 API에 대해 백엔드 서버에서 오류가 반환될 때마다 응답은 다음과 같은 형식을 취합니다.
샘플 응답
{ "error": { "errors": [ { "domain": "global", "reason": "invalid", "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN" } ], "code": 400, "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN" } }
오류 코드는 message 필드에서 가져옵니다. 위의 모든 오류 코드는 메시지 필드 콘텐츠입니다.