API 사용
REST API를 통해 Firebase 인증 백엔드를 쿼리할 수 있습니다. 이는 새 사용자 생성, 기존 사용자 로그인, 이러한 사용자 편집 또는 삭제와 같은 다양한 작업에 사용될 수 있습니다.
이 문서 전체에서 API_KEY
관리 콘솔의 프로젝트 설정 페이지에서 얻을 수 있는 웹 API 키를 나타냅니다.
ID 및 새로 고침 토큰에 대한 사용자 정의 토큰 교환
Auth verifyCustomToken
엔드포인트에 HTTP POST
요청을 실행하여 ID 및 새로 고침 토큰에 대한 사용자 지정 인증 토큰을 교환할 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
토큰 | 끈 | ID 및 새로고침 토큰 쌍을 생성하는 데 사용할 Firebase 인증 맞춤 토큰입니다. |
returnSecureToken | 부울 | ID 및 새로 고침 토큰을 반환할지 여부입니다. 항상 사실이어야 합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
아이디토큰 | 끈 | 제공된 맞춤 토큰에서 생성된 Firebase 인증 ID 토큰입니다. |
새로 고침 토큰 | 끈 | 제공된 맞춤 토큰에서 생성된 Firebase 인증 새로고침 토큰입니다. |
만료 | 끈 | ID 토큰이 만료되는 시간(초)입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"token":"[CUSTOM_TOKEN]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 Firebase ID 토큰과 맞춤 토큰과 연결된 새로고침 토큰이 포함되어 있습니다.
샘플 응답
{ "idToken": "[ID_TOKEN]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
일반적인 오류 코드
- INVALID_CUSTOM_TOKEN: 사용자 정의 토큰 형식이 올바르지 않거나 어떤 이유로 인해 토큰이 유효하지 않습니다(예: 만료, 유효하지 않은 서명 등).
- CREDENTIAL_MISMATCH: 맞춤 토큰이 다른 Firebase 프로젝트에 해당합니다.
새로 고침 토큰을 ID 토큰으로 교환
securetoken.googleapis.com
엔드포인트에 HTTP POST
요청을 실행하여 Firebase ID 토큰을 새로고침할 수 있습니다.
방법: POST
콘텐츠 유형: application/x-www-form-urlencoded
엔드포인트https://securetoken.googleapis.com/v1/token?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
보조금 유형 | 끈 | 새로 고침 토큰의 부여 유형은 항상 "refresh_token"입니다. |
새로 고침_토큰 | 끈 | Firebase 인증 새로고침 토큰입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
만료 | 끈 | ID 토큰이 만료되는 시간(초)입니다. |
토큰 유형 | 끈 | 새로 고침 토큰의 유형이며 항상 "Bearer"입니다. |
새로 고침_토큰 | 끈 | 요청에 제공된 Firebase 인증 새로 고침 토큰 또는 새 새로 고침 토큰입니다. |
id_token | 끈 | Firebase 인증 ID 토큰입니다. |
user_id | 끈 | 제공된 ID 토큰에 해당하는 uid입니다. |
프로젝트_ID | 끈 | Firebase 프로젝트 ID입니다. |
샘플 요청
curl 'https://securetoken.googleapis.com/v1/token?key=[API_KEY]' \ -H 'Content-Type: application/x-www-form-urlencoded' \ --data 'grant_type=refresh_token&refresh_token=[REFRESH_TOKEN]'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 새로운 Firebase ID 토큰과 새로고침 토큰이 포함됩니다.
샘플 응답
{ "expires_in": "3600", "token_type": "Bearer", "refresh_token": "[REFRESH_TOKEN]", "id_token": "[ID_TOKEN]", "user_id": "tRcfmLH7o2XrNELi...", "project_id": "1234567890" }
일반적인 오류 코드
- TOKEN_EXPIRED: 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야 합니다.
- USER_DISABLED: 관리자가 사용자 계정을 비활성화했습니다.
- USER_NOT_FOUND: 새로고침 토큰에 해당하는 사용자를 찾을 수 없습니다. 사용자가 삭제되었을 가능성이 높습니다.
- API 키가 유효하지 않습니다. 유효한 API 키를 전달하세요. (잘못된 API 키 제공)
- INVALID_REFRESH_TOKEN: 잘못된 새로 고침 토큰이 제공되었습니다.
- 잘못된 JSON 페이로드가 수신되었습니다. 알 수 없는 이름 \"refresh_tokens\": 쿼리 매개변수를 바인딩할 수 없습니다. 요청 메시지에서 'refresh_tokens' 필드를 찾을 수 없습니다.
- INVALID_GRANT_TYPE: 지정된 부여 유형이 잘못되었습니다.
- MISSING_REFRESH_TOKEN: 새로 고침 토큰이 제공되지 않았습니다.
- PROJECT_NUMBER_MISMATCH: 새로 고침 토큰의 프로젝트 번호가 제공된 API 키의 프로젝트 번호와 일치하지 않습니다.
이메일 / 비밀번호로 가입
Auth signupNewUser
엔드포인트에 HTTP POST
요청을 발행하여 새 이메일 및 비밀번호 사용자를 생성할 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 끈 | 사용자가 생성할 이메일입니다. |
비밀번호 | 끈 | 사용자가 생성할 비밀번호입니다. |
returnSecureToken | 부울 | ID 및 새로 고침 토큰을 반환할지 여부입니다. 항상 사실이어야 합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
아이디토큰 | 끈 | 새로 생성된 사용자의 Firebase 인증 ID 토큰입니다. |
이메일 | 끈 | 새로 생성된 사용자의 이메일입니다. |
새로 고침 토큰 | 끈 | 새로 생성된 사용자에 대한 Firebase 인증 새로고침 토큰입니다. |
만료 | 끈 | ID 토큰이 만료되는 시간(초)입니다. |
로컬ID | 끈 | 새로 생성된 사용자의 uid입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"email":"[user@example.com]","password":"[PASSWORD]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 새 계정과 연결된 Firebase ID 토큰과 새로고침 토큰이 포함됩니다.
샘플 응답
{ "idToken": "[ID_TOKEN]", "email": "[user@example.com]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "tRcfmLH7..." }
일반적인 오류 코드
- EMAIL_EXISTS: 해당 이메일 주소는 이미 다른 계정에서 사용 중입니다.
- OPERATION_NOT_ALLOWED: 이 프로젝트에는 비밀번호 로그인이 비활성화되어 있습니다.
- TOO_MANY_ATTEMPTS_TRY_LATER: 비정상적인 활동으로 인해 이 장치의 모든 요청을 차단했습니다. 나중에 다시 시도하세요.
이메일 / 비밀번호로 로그인
Auth verifyPassword
엔드포인트에 HTTP POST
요청을 실행하여 이메일과 비밀번호로 사용자를 로그인할 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 끈 | 사용자가 로그인하는 데 사용하는 이메일입니다. |
비밀번호 | 끈 | 계정의 비밀번호입니다. |
returnSecureToken | 부울 | ID 및 새로 고침 토큰을 반환할지 여부입니다. 항상 사실이어야 합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
아이디토큰 | 끈 | 인증된 사용자의 Firebase 인증 ID 토큰입니다. |
이메일 | 끈 | 인증된 사용자의 이메일입니다. |
새로 고침 토큰 | 끈 | 인증된 사용자를 위한 Firebase 인증 새로고침 토큰입니다. |
만료 | 끈 | ID 토큰이 만료되는 시간(초)입니다. |
로컬ID | 끈 | 인증된 사용자의 uid입니다. |
등기 | 부울 | 이메일이 기존 계정에 대한 것인지 여부입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"email":"[user@example.com]","password":"[PASSWORD]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 기존 이메일/비밀번호 계정과 연결된 Firebase ID 토큰 및 새로 고침 토큰이 포함됩니다.
샘플 응답
{ "localId": "ZY1rJK0eYLg...", "email": "[user@example.com]", "displayName": "", "idToken": "[ID_TOKEN]", "registered": true, "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
일반적인 오류 코드
- EMAIL_NOT_FOUND: 이 식별자에 해당하는 사용자 기록이 없습니다. 사용자가 삭제되었을 수 있습니다.
- INVALID_PASSWORD: 비밀번호가 유효하지 않거나 사용자에게 비밀번호가 없습니다.
- USER_DISABLED: 관리자가 사용자 계정을 비활성화했습니다.
익명으로 로그인
Auth signupNewUser
엔드포인트에 HTTP POST
요청을 발행하여 익명으로 사용자를 로그인할 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
끝점https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
returnSecureToken | 부울 | ID 및 새로 고침 토큰을 반환할지 여부입니다. 항상 사실이어야 합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
아이디토큰 | 끈 | 새로 생성된 사용자의 Firebase 인증 ID 토큰입니다. |
이메일 | 끈 | 사용자가 익명이므로 비어 있어야 합니다. |
새로 고침 토큰 | 끈 | 새로 생성된 사용자에 대한 Firebase 인증 새로고침 토큰입니다. |
만료 | 끈 | ID 토큰이 만료되는 시간(초)입니다. |
로컬 ID | 끈 | 새로 생성된 사용자의 uid입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 익명 사용자와 연결된 Firebase ID 토큰과 새로고침 토큰이 포함됩니다.
샘플 응답
{ "idToken": "[ID_TOKEN]", "email": "", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "Jws4SVjpT..." }
일반적인 오류 코드
- OPERATION_NOT_ALLOWED: 이 프로젝트에는 익명 사용자 로그인이 비활성화되어 있습니다.
OAuth 자격 증명으로 로그인
Auth verifyAssertion
엔드포인트에 HTTP POST
요청을 실행하여 OAuth 자격 증명으로 사용자를 로그인할 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
끝점https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
requestUri | 끈 | IDP가 사용자를 다시 리디렉션하는 URI입니다. |
포스트바디 | 끈 | OAuth 자격 증명(ID 토큰 또는 액세스 토큰)과 자격 증명을 발급하는 공급자 ID를 포함합니다. |
returnSecureToken | 부울 | ID 및 새로 고침 토큰을 반환할지 여부입니다. 항상 사실이어야 합니다. |
returnIdp 자격 증명 | 부울 | FEDERATED_USER_ID_ALREADY_LINKED 및 EMAIL_EXISTS 오류에 대해 OAuth 자격 증명을 강제로 반환할지 여부입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
연합 ID | 끈 | 고유 ID는 IdP 계정을 식별합니다. |
공급자 ID | 끈 | 연결된 제공업체 ID(예: Google 제공업체의 경우 'google.com') |
로컬 ID | 끈 | 인증된 사용자의 uid입니다. |
이메일인증됨 | 부울 | 로그인 이메일이 확인되었는지 여부입니다. |
이메일 | 끈 | 계정의 이메일입니다. |
oauthId토큰 | 끈 | 사용 가능한 경우 OIDC ID 토큰입니다. |
oauth액세스 토큰 | 끈 | 사용 가능한 경우 OAuth 액세스 토큰입니다. |
oauthToken비밀 | 끈 | 가능한 경우 OAuth 1.0 토큰 비밀번호입니다. |
원시사용자정보 | 끈 | 제공된 OAuth 자격 증명에 해당하는 모든 IdP 데이터를 포함하는 문자열화된 JSON 응답입니다. |
이름 | 끈 | 계정의 이름입니다. |
성 | 끈 | 계정의 성입니다. |
전체 이름 | 끈 | 계정의 전체 이름입니다. |
이름 표시하기 | 끈 | 계정의 표시 이름입니다. |
사진 URL | 끈 | 계정의 사진 URL입니다. |
아이디토큰 | 끈 | 인증된 사용자의 Firebase 인증 ID 토큰입니다. |
새로 고침 토큰 | 끈 | 인증된 사용자를 위한 Firebase 인증 새로고침 토큰입니다. |
만료 | 끈 | ID 토큰이 만료되는 시간(초)입니다. |
필요확인 | 부울 | 동일한 자격 증명을 가진 다른 계정이 이미 존재하는지 여부입니다. 사용자는 원래 계정에 로그인한 다음 현재 자격 증명을 해당 계정에 연결해야 합니다. |
OAuth ID 토큰을 사용한 샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 인증된 사용자와 연결된 Firebase ID 토큰과 새로고침 토큰이 포함됩니다.
OAuth ID 토큰을 사용한 샘플 응답
{ "federatedId": "https://accounts.google.com/1234567890", "providerId": "google.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthIdToken": "[GOOGLE_ID_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
OAuth 액세스 토큰을 사용한 샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[FACEBOOK_ACCESS_TOKEN]&providerId=[facebook.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 인증된 사용자와 연결된 Firebase ID 토큰과 새로고침 토큰이 포함됩니다.
OAuth 액세스 토큰을 사용한 샘플 응답
{ "federatedId": "http://facebook.com/1234567890", "providerId": "facebook.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[FACEBOOK_ACCESS_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://scontent.xx.fbcdn.net/v/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
Twitter OAuth 1.0 자격 증명을 사용한 샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[TWITTER_ACCESS_TOKEN]&oauth_token_secret=[TWITTER_TOKEN_SECRET]&providerId=[twitter.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 인증된 사용자와 연결된 Firebase ID 토큰과 새로고침 토큰이 포함됩니다.
Twitter OAuth 1.0 자격 증명을 사용한 샘플 응답
{ "federatedId": "http://twitter.com/1234567890", "providerId": "twitter.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[OAUTH_ACCESS_TOKEN]", "oauthTokenSecret": "[OAUTH_TOKEN_SECRET]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "http://abs.twimg.com/sticky/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
일반적인 오류 코드
- OPERATION_NOT_ALLOWED: 이 프로젝트에 대해 해당 공급자가 비활성화되었습니다.
- INVALID_IDP_RESPONSE: 제공된 인증 자격 증명이 잘못되었거나 만료되었습니다.
이메일 공급자 가져오기
Auth createAuthUri
엔드포인트에 HTTP POST
요청을 실행하여 지정된 이메일과 연결된 모든 공급자를 볼 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
식별자 | 끈 | 사용자의 이메일 주소 |
계속Uri | 끈 | IDP가 사용자를 다시 리디렉션하는 URI입니다. 이 사용 사례의 경우 이는 현재 URL일 뿐입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
모든 제공자 | 문자열 목록 | 사용자가 이전에 로그인한 공급자 목록입니다. |
등기 | 부울 | 이메일이 기존 계정에 대한 것인지 여부 |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"identifier":"[user@example.com]","continueUri":"[http://localhost:8080/app]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 이메일과 연결된 공급자 목록이 포함됩니다.
샘플 응답
{ "allProviders": [ "password", "google.com" ], "registered": true }
일반적인 오류 코드
- INVALID_EMAIL: 이메일 주소 형식이 잘못되었습니다.
비밀번호 재설정 이메일 보내기
인증 getOobConfirmationCode
엔드포인트에 HTTP POST
요청을 실행하여 비밀번호 재설정 이메일을 보낼 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
끝점https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]선택적 헤더
속성 이름 | 설명 |
---|---|
X-Firebase-로케일 | 사용자의 로캘에 해당하는 언어 코드입니다. 이를 전달하면 사용자에게 전송되는 비밀번호 재설정 이메일이 현지화됩니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
요청 유형 | 끈 | 반환할 OOB 코드의 종류입니다. 비밀번호 재설정을 위해서는 "PASSWORD_RESET"이어야 합니다. |
이메일 | 끈 | 사용자의 이메일 주소. |
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 끈 | 사용자의 이메일 주소. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"requestType":"PASSWORD_RESET","email":"[user@example.com]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "email": "[user@example.com]" }
일반적인 오류 코드
- EMAIL_NOT_FOUND: 이 식별자에 해당하는 사용자 기록이 없습니다. 사용자가 삭제되었을 수 있습니다.
비밀번호 재설정 코드 확인
Auth resetPassword
엔드포인트에 HTTP POST
요청을 실행하여 비밀번호 재설정 코드를 확인할 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
oob코드 | 끈 | 비밀번호 재설정을 위해 사용자의 이메일로 전송되는 이메일 작업 코드입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 끈 | 사용자의 이메일 주소. |
요청 유형 | 끈 | 이메일 작업 코드의 유형입니다. "PASSWORD_RESET"이어야 합니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "email": "[user@example.com]", "requestType": "PASSWORD_RESET" }
일반적인 오류 코드
- OPERATION_NOT_ALLOWED: 이 프로젝트에는 비밀번호 로그인이 비활성화되어 있습니다.
- EXPIRED_OOB_CODE: 작업 코드가 만료되었습니다.
- INVALID_OOB_CODE: 작업 코드가 잘못되었습니다. 코드가 잘못되었거나, 만료되었거나, 이미 사용된 경우 이런 일이 발생할 수 있습니다.
비밀번호 재설정 확인
인증 resetPassword
엔드포인트에 HTTP POST
요청을 실행하여 비밀번호 재설정 변경 사항을 적용할 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
oob코드 | 끈 | 비밀번호 재설정을 위해 사용자의 이메일로 전송되는 이메일 작업 코드입니다. |
새 비밀번호 | 끈 | 사용자의 새 비밀번호입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 끈 | 사용자의 이메일 주소. |
요청 유형 | 끈 | 이메일 작업 코드의 유형입니다. "PASSWORD_RESET"이어야 합니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]","newPassword":"[NEW_PASSWORD]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "email": "[user@example.com]", "requestType": "PASSWORD_RESET" }
일반적인 오류 코드
- OPERATION_NOT_ALLOWED: 이 프로젝트에는 비밀번호 로그인이 비활성화되어 있습니다.
- EXPIRED_OOB_CODE: 작업 코드가 만료되었습니다.
- INVALID_OOB_CODE: 작업 코드가 잘못되었습니다. 코드가 잘못되었거나, 만료되었거나, 이미 사용된 경우 이런 일이 발생할 수 있습니다.
- USER_DISABLED: 관리자가 사용자 계정을 비활성화했습니다.
이메일을 바꾸다
인증 setAccountInfo
엔드포인트에 HTTP POST
요청을 발행하여 사용자의 이메일을 변경할 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
끝점https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]선택적 헤더
속성 이름 | 설명 |
---|---|
X-Firebase-로케일 | 사용자의 로캘에 해당하는 언어 코드입니다. 이를 전달하면 사용자에게 전송되는 이메일 변경 취소가 현지화됩니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
아이디토큰 | 끈 | 사용자의 Firebase 인증 ID 토큰입니다. |
이메일 | 끈 | 사용자의 새 이메일입니다. |
returnSecureToken | 부울 | ID 및 새로 고침 토큰을 반환할지 여부입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
로컬 ID | 끈 | 현재 사용자의 uid입니다. |
이메일 | 끈 | 사용자의 이메일 주소. |
비밀번호해시 | 끈 | 비밀번호의 해시 버전입니다. |
공급자사용자정보 | JSON 객체 목록 | "providerId" 및 "federatedId"를 포함하는 연결된 모든 공급자 개체의 목록입니다. |
아이디토큰 | 끈 | 사용자의 새 Firebase 인증 ID 토큰입니다. |
새로 고침 토큰 | 끈 | Firebase 인증 새로고침 토큰입니다. |
만료 | 끈 | ID 토큰이 만료되는 시간(초)입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[FIREBASE_ID_TOKEN]","email":"[user@example2.com]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 사용자와 연결된 새 Firebase ID 토큰과 새로고침 토큰이 포함됩니다.
샘플 응답
{ "localId": "tRcfmLH7o2...", "email": "[user@example2.com]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "[user@example2.com]" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
일반적인 오류 코드
- EMAIL_EXISTS: 해당 이메일 주소는 이미 다른 계정에서 사용 중입니다.
- INVALID_ID_TOKEN: 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야 합니다.
비밀번호 변경
인증 setAccountInfo
엔드포인트에 HTTP POST
요청을 발행하여 사용자의 비밀번호를 변경할 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
아이디토큰 | 끈 | 사용자의 Firebase 인증 ID 토큰입니다. |
비밀번호 | 끈 | 사용자의 새 비밀번호입니다. |
returnSecureToken | 부울 | ID 및 새로 고침 토큰을 반환할지 여부입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
로컬ID | 끈 | 현재 사용자의 uid입니다. |
이메일 | 끈 | 사용자의 이메일 주소. |
비밀번호해시 | 끈 | 비밀번호의 해시 버전입니다. |
공급자사용자정보 | JSON 객체 목록 | "providerId" 및 "federatedId"를 포함하는 연결된 모든 공급자 개체의 목록입니다. |
아이디토큰 | 끈 | 사용자의 새 Firebase 인증 ID 토큰입니다. |
새로 고침 토큰 | 끈 | Firebase 인증 새로고침 토큰입니다. |
만료 | 끈 | ID 토큰이 만료되는 시간(초)입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[FIREBASE_ID_TOKEN]","password":"[NEW_PASSWORD]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 사용자와 연결된 새 Firebase ID 토큰과 새로고침 토큰이 포함됩니다.
샘플 응답
{ "localId": "tRcfmLH7o2...", "email": "[user@example.com]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "[user@example.com]" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
일반적인 오류 코드
- INVALID_ID_TOKEN: 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야 합니다.
- WEAK_PASSWORD: 비밀번호는 6자 이상이어야 합니다.
프로필 업데이트
인증 setAccountInfo
엔드포인트에 HTTP POST
요청을 실행하여 사용자 프로필(표시 이름/사진 URL)을 업데이트할 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
아이디토큰 | 끈 | 사용자의 Firebase 인증 ID 토큰입니다. |
이름 표시하기 | 끈 | 사용자의 새 표시 이름입니다. |
사진 URL | 끈 | 사용자의 새 사진 URL입니다. |
삭제속성 | 문자열 목록 | 삭제할 속성 목록('DISPLAY_NAME' 또는 'PHOTO_URL')입니다. 이렇게 하면 해당 값이 무효화됩니다. |
returnSecureToken | 부울 | ID 및 새로 고침 토큰을 반환할지 여부입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
로컬ID | 끈 | 현재 사용자의 uid입니다. |
이메일 | 끈 | 사용자의 이메일 주소. |
이름 표시하기 | 끈 | 사용자의 새 표시 이름입니다. |
사진 URL | 끈 | 사용자의 새 사진 URL입니다. |
비밀번호해시 | 끈 | 비밀번호의 해시 버전입니다. |
공급자사용자정보 | JSON 객체 목록 | "providerId" 및 "federatedId"를 포함하는 연결된 모든 공급자 개체의 목록입니다. |
아이디토큰 | 끈 | 사용자의 새 Firebase 인증 ID 토큰입니다. |
새로 고침 토큰 | 끈 | Firebase 인증 새로고침 토큰입니다. |
만료 | 끈 | ID 토큰이 만료되는 시간(초)입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[ID_TOKEN]","displayName":"[NAME]","photoUrl":"[URL]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "localId": "tRcfmLH...", "email": "user@example2.com", "displayName": "John Doe", "photoUrl": "[http://localhost:8080/img1234567890/photo.png]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example2.com", "displayName": "John Doe", "photoUrl": "http://localhost:8080/img1234567890/photo.png" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
일반적인 오류 코드
- INVALID_ID_TOKEN: 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야 합니다.
사용자 데이터 가져오기
Auth getAccountInfo
엔드포인트에 HTTP POST
요청을 실행하여 사용자의 데이터를 가져올 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
아이디토큰 | 끈 | 계정의 Firebase ID 토큰입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
사용자 | JSON 객체 목록 | 지정된 Firebase ID 토큰과 연결된 계정입니다. 자세한 내용은 아래를 확인하세요. |
users
배열 콘텐츠)속성 이름 | 유형 | 설명 |
---|---|---|
로컬ID | 끈 | 현재 사용자의 uid입니다. |
이메일 | 끈 | 계정의 이메일입니다. |
이메일인증됨 | 부울 | 계정의 이메일이 확인되었는지 여부입니다. |
이름 표시하기 | 끈 | 계정의 표시 이름입니다. |
공급자사용자정보 | JSON 객체 목록 | "providerId" 및 "federatedId"를 포함하는 연결된 모든 공급자 개체의 목록입니다. |
사진 URL | 끈 | 계정의 사진 URL입니다. |
비밀번호해시 | 끈 | 비밀번호의 해시 버전입니다. |
비밀번호업데이트시간 | 더블 | 계정 비밀번호가 마지막으로 변경된 타임스탬프(밀리초)입니다. |
유효한 이후 | 끈 | Firebase ID 토큰이 취소된 것으로 간주되기 전에 경계를 표시하는 타임스탬프(초)입니다. |
장애가 있는 | 부울 | 계정이 비활성화되었는지 여부입니다. |
마지막로그인시간 | 끈 | 계정이 마지막으로 로그인한 타임스탬프(밀리초)입니다. |
생성 시간 | 끈 | 계정이 생성된 타임스탬프(밀리초)입니다. |
맞춤 인증 | 부울 | 개발자가 계정을 인증했는지 여부입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 계정과 관련된 모든 사용자 정보가 포함됩니다.
샘플 응답
{ "users": [ { "localId": "ZY1rJK0...", "email": "user@example.com", "emailVerified": false, "displayName": "John Doe", "providerUserInfo": [ { "providerId": "password", "displayName": "John Doe", "photoUrl": "http://localhost:8080/img1234567890/photo.png", "federatedId": "user@example.com", "email": "user@example.com", "rawId": "user@example.com", "screenName": "user@example.com" } ], "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "passwordHash": "...", "passwordUpdatedAt": 1.484124177E12, "validSince": "1484124177", "disabled": false, "lastLoginAt": "1484628946000", "createdAt": "1484124142000", "customAuth": false } ] }
일반적인 오류 코드
- INVALID_ID_TOKEN: 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야 합니다.
- USER_NOT_FOUND: 이 식별자에 해당하는 사용자 기록이 없습니다. 사용자가 삭제되었을 수 있습니다.
이메일/비밀번호로 연결
인증 setAccountInfo
엔드포인트에 HTTP POST
요청을 발행하여 이메일/비밀번호를 현재 사용자에게 연결할 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
아이디토큰 | 끈 | 사용자 인증 정보를 연결하려는 계정의 Firebase ID 토큰입니다. |
이메일 | 끈 | 계정에 연결할 이메일입니다. |
비밀번호 | 끈 | 계정의 새 비밀번호입니다. |
returnSecureToken | 끈 | ID 및 새로 고침 토큰을 반환할지 여부입니다. 항상 사실이어야 합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
로컬ID | 끈 | 현재 사용자의 uid입니다. |
이메일 | 끈 | 계정의 이메일입니다. |
이름 표시하기 | 끈 | 계정의 표시 이름입니다. |
사진 URL | 끈 | 계정의 사진 URL입니다. |
비밀번호해시 | 끈 | 비밀번호의 해시 버전입니다. |
공급자사용자정보 | JSON 객체 목록 | "providerId" 및 "federatedId"를 포함하는 연결된 모든 공급자 개체의 목록입니다. |
이메일인증됨 | 부울 | 계정의 이메일이 확인되었는지 여부입니다. |
아이디토큰 | 끈 | 사용자의 새 Firebase 인증 ID 토큰입니다. |
새로 고침 토큰 | 끈 | Firebase 인증 새로고침 토큰입니다. |
만료 | 끈 | ID 토큰이 만료되는 시간(초)입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[ID_TOKEN]","email":"[user@example.com]","password":"[PASS]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 인증된 사용자와 연결된 Firebase ID 토큰과 새로고침 토큰이 포함됩니다.
샘플 응답
{ "localId": "huDwUz...", "email": "user@example.com", "displayName": "John Doe", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example.com" } ], "idToken": "[ID_TOKEN]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "emailVerified": false }
일반적인 오류 코드
- CREDENTIAL_TOO_OLD_LOGIN_AGAIN: 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야 합니다.
- TOKEN_EXPIRED: 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야 합니다.
- INVALID_ID_TOKEN: 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야 합니다.
- WEAK_PASSWORD: 비밀번호는 6자 이상이어야 합니다.
OAuth 자격 증명으로 연결
Auth verifyAssertion
엔드포인트에 HTTP POST
요청을 실행하여 OAuth 자격 증명을 사용자에게 연결할 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
아이디토큰 | 끈 | 사용자 인증 정보를 연결하려는 계정의 Firebase ID 토큰입니다. |
requestUri | 끈 | IDP가 사용자를 다시 리디렉션하는 URI입니다. |
포스트바디 | 끈 | OAuth 자격 증명(ID 토큰 또는 액세스 토큰)과 자격 증명을 발급하는 공급자 ID를 포함합니다. |
returnSecureToken | 부울 | ID 및 새로 고침 토큰을 반환할지 여부입니다. 항상 사실이어야 합니다. |
returnIdp 자격 증명 | 부울 | FEDERATED_USER_ID_ALREADY_LINKED 및 EMAIL_EXISTS 오류에 대해 OAuth 자격 증명을 강제로 반환할지 여부입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
연합 ID | 끈 | 고유 ID는 IdP 계정을 식별합니다. |
공급자 ID | 끈 | 연결된 제공업체 ID(예: Google 제공업체의 경우 'google.com') |
로컬 ID | 끈 | 인증된 사용자의 uid입니다. |
이메일인증됨 | 부울 | 로그인 이메일이 확인되었는지 여부입니다. |
이메일 | 끈 | 계정의 이메일입니다. |
oauthId토큰 | 끈 | 사용 가능한 경우 OIDC ID 토큰입니다. |
oauth액세스 토큰 | 끈 | 사용 가능한 경우 OAuth 액세스 토큰입니다. |
oauthToken비밀 | 끈 | 가능한 경우 OAuth 1.0 토큰 비밀번호입니다. |
원시사용자정보 | 끈 | 제공된 OAuth 자격 증명에 해당하는 모든 IdP 데이터를 포함하는 문자열화된 JSON 응답입니다. |
이름 | 끈 | 계정의 이름입니다. |
성 | 끈 | 계정의 성입니다. |
전체 이름 | 끈 | 계정의 전체 이름입니다. |
이름 표시하기 | 끈 | 계정의 표시 이름입니다. |
사진 URL | 끈 | 계정의 사진 URL입니다. |
아이디토큰 | 끈 | 인증된 사용자의 Firebase 인증 ID 토큰입니다. |
새로 고침 토큰 | 끈 | 인증된 사용자를 위한 Firebase 인증 새로고침 토큰입니다. |
만료 | 끈 | ID 토큰이 만료되는 시간(초)입니다. |
OAuth ID 토큰을 사용한 샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","idToken":"[FIREBASE_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 인증된 사용자와 연결된 Firebase ID 토큰과 새로고침 토큰이 포함됩니다.
OAuth ID 토큰을 사용한 샘플 응답
{ "federatedId": "https://accounts.google.com/1234567890", "providerId": "google.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthIdToken": "[GOOGLE_ID_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
OAuth 액세스 토큰을 사용한 샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[FACEBOOK_ACCESS_TOKEN]&providerId=[facebook.com]","idToken":"[FIREBASE_ID_TOKEN]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 인증된 사용자와 연결된 Firebase ID 토큰과 새로고침 토큰이 포함됩니다.
OAuth 액세스 토큰을 사용한 샘플 응답
{ "federatedId": "http://facebook.com/1234567890", "providerId": "facebook.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[FACEBOOK_ACCESS_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://scontent.xx.fbcdn.net/v/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
Twitter OAuth 1.0 자격 증명을 사용한 샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[TWITTER_ACCESS_TOKEN]&oauth_token_secret=[TWITTER_TOKEN_SECRET]&providerId=[twitter.com]","requestUri":"[http://localhost]","idToken":"[FIREBASE_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 인증된 사용자와 연결된 Firebase ID 토큰과 새로고침 토큰이 포함됩니다.
Twitter OAuth 1.0 자격 증명을 사용한 샘플 응답
{ "federatedId": "http://twitter.com/1234567890", "providerId": "twitter.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[OAUTH_ACCESS_TOKEN]", "oauthTokenSecret": "[OAUTH_TOKEN_SECRET]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "http://abs.twimg.com/sticky/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
일반적인 오류 코드
- OPERATION_NOT_ALLOWED: 이 프로젝트에 대해 해당 공급자가 비활성화되었습니다.
- INVALID_IDP_RESPONSE: 제공된 인증 자격 증명이 잘못되었거나 만료되었습니다.
- INVALID_ID_TOKEN: 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야 합니다.
- EMAIL_EXISTS: 해당 이메일 주소는 이미 다른 계정에서 사용 중입니다.
- FEDERATED_USER_ID_ALREADY_LINKED: 이 자격 증명은 이미 다른 사용자 계정과 연결되어 있습니다.
제공업체 연결 해제
인증 setAccountInfo
엔드포인트에 HTTP POST
요청을 발행하여 현재 사용자로부터 공급자의 연결을 해제할 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
아이디토큰 | 끈 | 계정의 Firebase ID 토큰입니다. |
삭제 제공자 | 문자열 목록 | 연결을 해제할 제공업체 ID 목록입니다(예: 'google.com', 'password' 등). |
속성 이름 | 유형 | 설명 |
---|---|---|
로컬 ID | 끈 | 현재 사용자의 uid입니다. |
이메일 | 끈 | 계정의 이메일입니다. |
이름 표시하기 | 끈 | 계정의 표시 이름입니다. |
사진 URL | 끈 | 계정의 사진 URL입니다. |
비밀번호해시 | 끈 | 비밀번호의 해시 버전입니다. |
공급자사용자정보 | JSON 객체 목록 | "providerId" 및 "federatedId"를 포함하는 연결된 모든 공급자 개체의 목록입니다. |
이메일인증됨 | 부울 | 계정의 이메일이 확인되었는지 여부입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]","deleteProvider":["[facebook.com]"]}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "localId": "huDwUz...", "email": "user@example.com", "displayName": "John Doe", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "passwordHash": "...", "providerUserInfo": [ { "providerId": "google.com", "federatedId": "1234567890", "displayName": "John Doe", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg" }, { "providerId": "password", "federatedId": "user@example.com" } ], "emailVerified": "true" }
일반적인 오류 코드
- INVALID_ID_TOKEN: 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야 합니다.
이메일 확인 보내기
인증 getOobConfirmationCode
엔드포인트에 HTTP POST
요청을 발행하여 현재 사용자에 대한 이메일 확인을 보낼 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
끝점https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]선택적 헤더
속성 이름 | 설명 |
---|---|
X-Firebase-로케일 | 사용자의 로캘에 해당하는 언어 코드입니다. 이를 전달하면 사용자에게 전송되는 이메일 확인이 현지화됩니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
요청 유형 | 끈 | 보낼 확인 코드의 유형입니다. 항상 "VERIFY_EMAIL"이어야 합니다. |
아이디토큰 | 끈 | 확인할 사용자의 Firebase ID 토큰입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 끈 | 계정의 이메일입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"requestType":"VERIFY_EMAIL","idToken":"[FIREBASE_ID_TOKEN]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "email": "user@example.com" }
일반적인 오류 코드
- INVALID_ID_TOKEN: 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야 합니다.
- USER_NOT_FOUND: 이 식별자에 해당하는 사용자 기록이 없습니다. 사용자가 삭제되었을 수 있습니다.
이메일 확인 확인
인증 setAccountInfo
엔드포인트에 HTTP POST
요청을 발행하여 이메일 확인 코드를 확인할 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
oob코드 | 끈 | 이메일 확인을 위해 사용자의 이메일로 전송되는 작업 코드입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 끈 | 계정의 이메일입니다. |
이름 표시하기 | 끈 | 계정의 표시 이름입니다. |
사진 URL | 끈 | 계정의 사진 URL입니다. |
비밀번호해시 | 끈 | 비밀번호 해시입니다. |
공급자사용자정보 | JSON 객체 목록 | "providerId" 및 "federatedId"를 포함하는 연결된 모든 공급자 개체의 목록입니다. |
이메일인증됨 | 부울 | 계정의 이메일이 확인되었는지 여부입니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"oobCode":"[VERIFICATION_CODE]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "localId": "FhyStE...", "email": "user@example.com", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example.com" } ] }
일반적인 오류 코드
- EXPIRED_OOB_CODE: 작업 코드가 만료되었습니다.
- INVALID_OOB_CODE: 작업 코드가 잘못되었습니다. 코드가 잘못되었거나, 만료되었거나, 이미 사용된 경우 이런 일이 발생할 수 있습니다.
- USER_DISABLED: 관리자가 사용자 계정을 비활성화했습니다.
- EMAIL_NOT_FOUND: 이 식별자에 해당하는 사용자 기록이 없습니다. 사용자가 삭제되었을 수 있습니다.
계정 삭제
Auth deleteAccount
엔드포인트에 HTTP POST
요청을 실행하여 현재 사용자를 삭제할 수 있습니다.
방법: POST
콘텐츠 유형: 애플리케이션/json
엔드포인트https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
아이디토큰 | 끈 | 삭제할 사용자의 Firebase ID 토큰입니다. |
속성 이름 | 유형 | 설명 |
---|
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
일반적인 오류 코드
- INVALID_ID_TOKEN: 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야 합니다.
- USER_NOT_FOUND: 이 식별자에 해당하는 사용자 기록이 없습니다. 사용자가 삭제되었을 수 있습니다.
Firebase 인증 에뮬레이터
Firebase 로컬 에뮬레이터 제품군에는 로컬 프로토타입 제작 및 인증 흐름 테스트에 사용할 수 있는 인증 에뮬레이터가 포함되어 있습니다. 에뮬레이터는 다음 REST 엔드포인트를 노출합니다.
사용자 계정 지우기
상태에 관계없이 지정된 프로젝트의 모든 계정을 제거합니다.
방법: 삭제
엔드포인트 9099
인증 에뮬레이터의 기본 포트입니다. 실제 사용되는 포트의 터미널 출력을 확인하세요.
http://localhost:9099/emulator/v1/projects/{project-id}/accounts
에뮬레이터 구성 가져오기
지정된 프로젝트에 대한 에뮬레이터별 구성을 가져옵니다.
방법: GET
엔드포인트 9099
인증 에뮬레이터의 기본 포트입니다. 실제 사용되는 포트의 터미널 출력을 확인하세요.
http://localhost:9099/emulator/v1/projects/{project-id}/config응답 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
로그인 | 물체 | 단일 키인 allowDuplicateEmails (부울)를 포함하는 signIn 구성 개체입니다. |
패치 에뮬레이터 구성
지정된 프로젝트에 대한 에뮬레이터별 구성을 업데이트합니다.
방법: 패치
엔드포인트 9099
인증 에뮬레이터의 기본 포트입니다. 실제 사용되는 포트의 터미널 출력을 확인하세요.
콘텐츠 유형: 애플리케이션/json
http://localhost:9099/emulator/v1/projects/{project-id}/config요청 본문 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
로그인 | 물체 | 단일 키인 allowDuplicateEmails (부울)가 있는 원하는 signIn 구성 개체입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
로그인 | 물체 | 요청 후 서명 된 구성 객체 단일 키, allowDuplicateEmails (부울). |
대역 외 인증 코드를 검색합니다
테스트중인 인증 흐름이 일반적으로 대역 외 코드 (예 : 이메일 확인 코드, 비밀번호 재설정 코드)를 생성하는 경우 에뮬레이터는 이러한 코드가 사용될 때까지 내부적으로 저장합니다.
방법 : 얻으십시오
엔드 포인트 9099
인증 에뮬레이터의 기본 포트입니다. 사용중인 실제 포트가 터미널 출력을 확인하십시오.
http://localhost:9099/emulator/v1/projects/{project-id}/oobCodes응답 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
oobcodes | 정렬 | 모든 계류중인 확인 코드의 세부 사항을 포함하는 객체 배열. 각 객체에는 email (String), oobCode (String), oobLink (String) 및 requestType (String)가 포함됩니다. |
SMS 확인 코드를 검색합니다
전화/SMS 인증 흐름을 테스트하는 경우 에뮬레이터는 이러한 SMS 코드가 사용될 때까지 내부적으로 저장합니다.
방법 : 얻으십시오
엔드 포인트 9099
인증 에뮬레이터의 기본 포트입니다. 사용중인 실제 포트가 터미널 출력을 확인하십시오.
http://localhost:9099/emulator/v1/projects/{project-id}/verificationCodes응답 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
verificationCodes | 정렬 | 모든 계류중인 검증 코드의 세부 사항을 포함하는 객체 배열. 각 객체에는 phoneNumber (String) 및 sessionCode (String)가 포함됩니다. |
오류 응답
오류 응답 형식
위의 API에 대한 백엔드 서버에서 오류가 반환 될 때마다 응답에는 다음 형식이 있습니다.
샘플 응답
{ "error": { "errors": [ { "domain": "global", "reason": "invalid", "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN" } ], "code": 400, "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN" } }
오류 코드는 메시지 필드에서 얻습니다. 위의 모든 오류 코드는 메시지 필드 내용을 나타냅니다.
API 사용
REST API를 통해 Firebase Auth를 쿼리 할 수 있습니다. 이는 새 사용자 생성, 기존 사용자에 서명하고 이러한 사용자를 편집하거나 삭제하는 등 다양한 작업에 사용할 수 있습니다.
이 문서 전체에서 API_KEY
웹 API 키를 말하며 관리자 콘솔의 프로젝트 설정 페이지에서 얻을 수 있습니다.
ID에 대한 맞춤형 토큰을 교환하고 새로 고침
인증 verifyCustomToken
endpoint에 HTTP POST
요청을 발행하여 ID에 대해 사용자 정의 인증 토큰을 교환하고 새로 고침 토큰을 교환 할 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]요청 바디 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
토큰 | 끈 | ID를 만들고 토큰 쌍을 새로 고침 할 수있는 Firebase Ault Custom Token. |
ReturnSecureToken | 부울 | ID를 반환하고 새로 고침할지 여부. 항상 사실이어야합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
Idtoken | 끈 | 제공된 커스텀 토큰에서 생성 된 Firebase Auth ID 토큰. |
RefreshToken | 끈 | 제공된 커스텀 토큰에서 생성 된 Firebase Auth Refresh Token. |
만료 | 끈 | ID 토큰이 만료되는 초 수. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"token":"[CUSTOM_TOKEN]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 이 응답에는 Firebase ID 토큰 및 사용자 정의 토큰과 관련된 새로 고침 토큰이 포함되어 있습니다.
샘플 응답
{ "idToken": "[ID_TOKEN]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
일반적인 오류 코드
- invalid_custom_token : 사용자 정의 토큰 형식이 잘못되었거나 어떤 이유로 든 토큰이 유효하지 않습니다 (예 : 만료, 유효하지 않은 서명 등).
- Credential_mistatch : 사용자 정의 토큰은 다른 Firebase 프로젝트에 해당합니다.
ID 토큰으로 새로 고침 토큰을 교환하십시오
securetoken.googleapis.com
endpoint에 HTTP POST
요청을 발행하여 Firebase ID 토큰을 새로 고칠 수 있습니다.
방법 : 게시물
콘텐츠 유형: application/x-www-form-urlencoded
엔드 포인트https://securetoken.googleapis.com/v1/token?key=[API_KEY]요청 바디 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
grant_type | 끈 | 새로 고침 토큰의 보조금 유형, 항상 "refresh_token". |
refresh_token | 끈 | Firebase Auth Refresh Token. |
속성 이름 | 유형 | 설명 |
---|---|---|
만료 | 끈 | ID 토큰이 만료되는 초 수. |
token_type | 끈 | 새로 고침 토큰의 유형, 항상 "베어러". |
refresh_token | 끈 | 요청에 제공된 Firebase Auth Refresh Token 또는 새로운 새로 고침 토큰. |
id_token | 끈 | Firebase Auth ID 토큰. |
user_id | 끈 | 제공된 ID 토큰에 해당하는 UID. |
project_id | 끈 | Firebase Project ID. |
샘플 요청
curl 'https://securetoken.googleapis.com/v1/token?key=[API_KEY]' \ -H 'Content-Type: application/x-www-form-urlencoded' \ --data 'grant_type=refresh_token&refresh_token=[REFRESH_TOKEN]'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 이 응답에는 새로운 Firebase ID 토큰 및 새로 고침 토큰이 포함되어 있습니다.
샘플 응답
{ "expires_in": "3600", "token_type": "Bearer", "refresh_token": "[REFRESH_TOKEN]", "id_token": "[ID_TOKEN]", "user_id": "tRcfmLH7o2XrNELi...", "project_id": "1234567890" }
일반적인 오류 코드
- Token_Expired : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.
- user_disabled : 관리자가 사용자 계정을 비활성화했습니다.
- user_not_found : 새로 고침 토큰에 해당하는 사용자는 찾을 수 없었습니다. 사용자가 삭제되었을 가능성이 높습니다.
- API 키 유효하지 않습니다. 유효한 API 키를 통과하십시오. (유효하지 않은 API 키)
- invalid_refresh_token : 잘못된 새로 고침 토큰이 제공됩니다.
- 잘못된 JSON 페이로드를 받았습니다. 알 수없는 이름 \ "refresh_tokens \": 쿼리 매개 변수를 바인딩 할 수 없습니다. 필드 'Comphriph_Tokens'는 요청 메시지에서 찾을 수 없습니다.
- invalid_grant_type : 지정된 보조금 유형이 유효하지 않습니다.
- Missing_Refresh_Token : 새로 고침 토큰이 제공되지 않습니다.
- project_number_mismatch : 새로 고침 토큰의 프로젝트 번호는 제공된 API 키의 프로젝트 번호와 일치하지 않습니다.
이메일 / 비밀번호로 가입하십시오
Auth signupNewUser
Endpoint에 HTTP POST
요청을 발행하여 새 이메일 및 비밀번호 사용자를 만들 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]요청 바디 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 끈 | 사용자가 작성할 이메일. |
비밀번호 | 끈 | 사용자가 생성 할 비밀번호. |
ReturnSecureToken | 부울 | ID를 반환하고 새로 고침할지 여부. 항상 사실이어야합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
Idtoken | 끈 | 새로 생성 된 사용자를위한 Firebase Auth ID 토큰. |
이메일 | 끈 | 새로 생성 된 사용자를위한 이메일. |
RefreshToken | 끈 | 새로 생성 된 사용자를위한 Firebase Auth Refresh Token. |
만료 | 끈 | ID 토큰이 만료되는 초 수. |
localid | 끈 | 새로 생성 된 사용자의 UID. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"email":"[user@example.com]","password":"[PASSWORD]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 이 응답에는 새 계정과 관련된 Firebase ID 토큰 및 새로 고침 토큰이 포함되어 있습니다.
샘플 응답
{ "idToken": "[ID_TOKEN]", "email": "[user@example.com]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "tRcfmLH7..." }
일반적인 오류 코드
- email_exists : 이메일 주소는 이미 다른 계정에서 사용 중입니다.
- Operation_Not_allowed :이 프로젝트에 비밀번호 로그인이 비활성화되었습니다.
- TOO_MANY_ATTEMPTS_TRY_LATER : 비정상적인 활동으로 인해이 장치의 모든 요청을 차단했습니다. 나중에 다시 시도하세요.
이메일 / 비밀번호로 로그인하십시오
Auth verifyPassword
endpoint에 HTTP POST
요청을 발행하여 이메일 및 비밀번호로 사용자에게 로그인 할 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]요청 바디 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 끈 | 사용자가 로그인하는 이메일. |
비밀번호 | 끈 | 계정의 비밀번호. |
ReturnSecureToken | 부울 | ID를 반환하고 새로 고침할지 여부. 항상 사실이어야합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
Idtoken | 끈 | 인증 된 사용자를위한 Firebase Auth ID 토큰. |
이메일 | 끈 | 인증 된 사용자를위한 이메일. |
RefreshToken | 끈 | 인증 된 사용자를위한 Firebase Auth Refresh Token. |
만료 | 끈 | ID 토큰이 만료되는 초 수. |
localid | 끈 | 인증 된 사용자의 UID. |
등기 | 부울 | 이메일이 기존 계정에 대한 것인지 여부 |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"email":"[user@example.com]","password":"[PASSWORD]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 이 응답에는 기존 이메일/비밀번호 계정과 관련된 Firebase ID 토큰 및 새로 고침 토큰이 포함되어 있습니다.
샘플 응답
{ "localId": "ZY1rJK0eYLg...", "email": "[user@example.com]", "displayName": "", "idToken": "[ID_TOKEN]", "registered": true, "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
일반적인 오류 코드
- email_not_found :이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.
- invalid_password : 암호가 유효하지 않거나 사용자에게 암호가 없습니다.
- user_disabled : 관리자가 사용자 계정을 비활성화했습니다.
익명으로 로그인하십시오
Auth signupNewUser
Endpoint에 HTTP POST
요청을 발행하여 익명으로 사용자에게 로그인 할 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]요청 본체 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
ReturnSecureToken | 부울 | ID를 반환하고 새로 고침할지 여부. 항상 사실이어야합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
Idtoken | 끈 | 새로 생성 된 사용자를위한 Firebase Auth ID 토큰. |
이메일 | 끈 | 사용자는 익명이므로 비어 있어야합니다. |
RefreshToken | 끈 | 새로 생성 된 사용자를위한 Firebase Auth Refresh Token. |
만료 | 끈 | ID 토큰이 만료되는 초 수. |
localid | 끈 | 새로 생성 된 사용자의 UID. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 이 응답에는 익명 사용자와 관련된 Firebase ID 토큰 및 새로 고침 토큰이 포함되어 있습니다.
샘플 응답
{ "idToken": "[ID_TOKEN]", "email": "", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "Jws4SVjpT..." }
일반적인 오류 코드
- Operation_Not_allowed :이 프로젝트에는 익명 사용자 로그인이 비활성화되었습니다.
Oauth 자격 증명으로 로그인하십시오
Auth verifyAssertion
endpoint에 HTTP POST
요청을 발행하여 OAUTH 자격 증명을 가진 사용자에게 로그인 할 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]요청 바디 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
requesturi | 끈 | IDP가 사용자를 다시 리디렉션하는 URI. |
우체통 | 끈 | 자격 증명을 발행하는 Oauth 자격 증명 (ID 토큰 또는 액세스 토큰) 및 제공자 ID가 포함되어 있습니다. |
ReturnSecureToken | 부울 | ID를 반환하고 새로 고침할지 여부. 항상 사실이어야합니다. |
returnIdPcredential | 부울 | 다음 오류에서 OAUTH 자격 증명을 강제로 반환할지 여부 : Federated_user_ID_ALREADY_LINKED 및 이메일_Exists. |
속성 이름 | 유형 | 설명 |
---|---|---|
FederatedId | 끈 | 고유 ID는 IDP 계정을 식별합니다. |
제공자 | 끈 | 링크 된 공급자 ID (예 : Google 제공 업체의 "Google.com"). |
localid | 끈 | 인증 된 사용자의 UID. |
이메일 보류 | 부울 | 로그인 이메일이 확인되는지 여부 |
이메일 | 끈 | 계정의 이메일. |
oauthidtoken | 끈 | 사용 가능한 경우 OIDC ID 토큰. |
oauthaccesstoken | 끈 | 사용 가능한 경우 OAUTH 액세스 토큰. |
Oauthtokensecret | 끈 | 사용 가능한 경우 Oauth 1.0 토큰 비밀. |
Rawuserinfo | 끈 | 제공된 OAUTH 자격 증명에 해당하는 모든 IDP 데이터를 포함하는 Stringified JSON 응답. |
이름 | 끈 | 계정의 이름. |
성 | 끈 | 계정의 성. |
풀 이름 | 끈 | 계정의 전체 이름. |
이름 표시하기 | 끈 | 계정의 표시 이름입니다. |
Photourl | 끈 | 계정의 사진 URL. |
Idtoken | 끈 | 인증 된 사용자를위한 Firebase Auth ID 토큰. |
RefreshToken | 끈 | 인증 된 사용자를위한 Firebase Auth Refresh Token. |
만료 | 끈 | ID 토큰이 만료되는 초 수. |
Needconfichation | 부울 | 동일한 자격 증명을 가진 다른 계정이 이미 존재하는지 여부. 사용자는 원래 계정에 로그인 한 다음 현재 자격 증명을 연결해야합니다. |
OAUTH ID 토큰을 사용한 샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 이 응답에는 인증 된 사용자와 관련된 Firebase ID 토큰 및 새로 고침 토큰이 포함되어 있습니다.
OAUTH ID 토큰으로 샘플 응답
{ "federatedId": "https://accounts.google.com/1234567890", "providerId": "google.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthIdToken": "[GOOGLE_ID_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
OAUTH 액세스 토큰을 사용한 샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[FACEBOOK_ACCESS_TOKEN]&providerId=[facebook.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 이 응답에는 인증 된 사용자와 관련된 Firebase ID 토큰 및 새로 고침 토큰이 포함되어 있습니다.
OAUTH 액세스 토큰을 사용한 샘플 응답
{ "federatedId": "http://facebook.com/1234567890", "providerId": "facebook.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[FACEBOOK_ACCESS_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://scontent.xx.fbcdn.net/v/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
Twitter Oauth 1.0 자격 증명을 사용한 샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[TWITTER_ACCESS_TOKEN]&oauth_token_secret=[TWITTER_TOKEN_SECRET]&providerId=[twitter.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 이 응답에는 인증 된 사용자와 관련된 Firebase ID 토큰 및 새로 고침 토큰이 포함되어 있습니다.
Twitter Oauth 1.0 자격 증명으로 샘플 응답
{ "federatedId": "http://twitter.com/1234567890", "providerId": "twitter.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[OAUTH_ACCESS_TOKEN]", "oauthTokenSecret": "[OAUTH_TOKEN_SECRET]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "http://abs.twimg.com/sticky/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
일반적인 오류 코드
- Operation_Not_allowed :이 프로젝트에 해당 제공자가 비활성화되었습니다.
- invalid_idp_response : 제공된 인증 자격 증명은 기형 또는 만료되었습니다.
이메일을위한 제공자를 가져 오십시오
Auth createAuthUri
엔드 포인트에 HTTP POST
요청을 발행하여 지정된 이메일과 관련된 모든 제공 업체를 볼 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]요청 본체 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
식별자 | 끈 | 사용자의 이메일 주소 |
계속 | 끈 | IDP가 사용자를 다시 리디렉션하는 URI. 이 사용 사례의 경우 이것은 현재 URL입니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
AllProviders | 문자열 목록 | 사용자가 이전에 로그인 한 공급자 목록. |
등기 | 부울 | 이메일이 기존 계정에 대한 것인지 여부 |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"identifier":"[user@example.com]","continueUri":"[http://localhost:8080/app]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 이메일과 관련된 제공자 목록이 포함되어 있습니다.
샘플 응답
{ "allProviders": [ "password", "google.com" ], "registered": true }
일반적인 오류 코드
- invalid_email : 이메일 주소가 잘못 형식화되었습니다.
비밀번호 재설정 이메일을 보내십시오
Auth getOobConfirmationCode
Endpoint에 HTTP POST
요청을 발행하여 비밀번호 재설정 이메일을 보낼 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]옵션 헤더
속성 이름 | 설명 |
---|---|
X-Firebase-Locale | 사용자의 로케일에 해당하는 언어 코드. 이 전달은 사용자에게 전송 된 비밀번호 재설정 이메일을 현지화합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
요청 유형 | 끈 | 반환 할 OOB 코드의 종류. 비밀번호 재설정을 위해 "password_reset"이어야합니다. |
이메일 | 끈 | 사용자의 이메일 주소. |
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 끈 | 사용자의 이메일 주소. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"requestType":"PASSWORD_RESET","email":"[user@example.com]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "email": "[user@example.com]" }
일반적인 오류 코드
- email_not_found :이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.
비밀번호 재설정 코드를 확인하십시오
Auth resetPassword
엔드 포인트에 HTTP POST
요청을 발행하여 암호 재설정 코드를 확인할 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]요청 본체 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
OOBCODE | 끈 | 비밀번호를 재설정하기 위해 사용자의 이메일로 전자 메일 액션 코드가 전송됩니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 끈 | 사용자의 이메일 주소. |
요청 유형 | 끈 | 이메일 액션 코드 유형. "password_reset"이어야합니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "email": "[user@example.com]", "requestType": "PASSWORD_RESET" }
일반적인 오류 코드
- Operation_Not_allowed :이 프로젝트에 비밀번호 로그인이 비활성화되었습니다.
- EXPRIED_OOB_CODE : 작업 코드가 만료되었습니다.
- invalid_oob_code : 동작 코드가 유효하지 않습니다. 코드가 기형, 만료 또는 이미 사용 된 경우 발생할 수 있습니다.
비밀번호 재설정을 확인하십시오
Auth resetPassword
엔드 포인트에 HTTP POST
요청을 발행하여 비밀번호 재설정 변경을 적용 할 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]요청 바디 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
OOBCODE | 끈 | 비밀번호를 재설정하기 위해 사용자의 이메일로 전자 메일 액션 코드가 전송됩니다. |
새 비밀번호 | 끈 | 사용자의 새 비밀번호. |
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 끈 | 사용자의 이메일 주소. |
요청 유형 | 끈 | 이메일 액션 코드 유형. "password_reset"이어야합니다. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]","newPassword":"[NEW_PASSWORD]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "email": "[user@example.com]", "requestType": "PASSWORD_RESET" }
일반적인 오류 코드
- Operation_Not_allowed :이 프로젝트에 비밀번호 로그인이 비활성화되었습니다.
- EXPRIED_OOB_CODE : 작업 코드가 만료되었습니다.
- invalid_oob_code : 동작 코드가 유효하지 않습니다. 코드가 기형, 만료 또는 이미 사용 된 경우 발생할 수 있습니다.
- user_disabled : 관리자가 사용자 계정을 비활성화했습니다.
이메일을 바꾸다
Auth setAccountInfo
endpoint에 HTTP POST
요청을 발행하여 사용자의 이메일을 변경할 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]옵션 헤더
속성 이름 | 설명 |
---|---|
X-Firebase-Locale | 사용자의 로케일에 해당하는 언어 코드. 이를 전달하면 사용자에게 전송 된 이메일 변경 취소가 현지화됩니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
Idtoken | 끈 | 사용자를위한 Firebase Auth ID 토큰. |
이메일 | 끈 | 사용자의 새 이메일. |
ReturnSecureToken | 부울 | ID를 반환하고 새로 고침할지 여부. |
속성 이름 | 유형 | 설명 |
---|---|---|
localid | 끈 | 현재 사용자의 UID. |
이메일 | 끈 | 사용자의 이메일 주소. |
비밀번호 | 끈 | 암호의 해시 버전. |
ProviderUserInfo | JSON 개체 목록 | "제공자"및 "FederatedID"를 포함하는 모든 연결된 공급자 개체 목록. |
Idtoken | 끈 | 사용자를위한 새로운 Firebase Auth ID 토큰. |
RefreshToken | 끈 | Firebase Auth Refresh Token. |
만료 | 끈 | ID 토큰이 만료되는 초 수. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[FIREBASE_ID_TOKEN]","email":"[user@example2.com]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 이 응답에는 새로운 Firebase ID 토큰 및 사용자와 관련된 새로 고침 토큰이 포함되어 있습니다.
샘플 응답
{ "localId": "tRcfmLH7o2...", "email": "[user@example2.com]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "[user@example2.com]" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
일반적인 오류 코드
- email_exists : 이메일 주소는 이미 다른 계정에서 사용 중입니다.
- invalid_id_token : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.
비밀번호 변경
Auth setAccountInfo
엔드 포인트에 HTTP POST
요청을 발행하여 사용자의 비밀번호를 변경할 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]요청 바디 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
Idtoken | 끈 | 사용자를위한 Firebase Auth ID 토큰. |
비밀번호 | 끈 | 사용자의 새 비밀번호. |
ReturnSecureToken | 부울 | ID를 반환하고 새로 고침할지 여부. |
속성 이름 | 유형 | 설명 |
---|---|---|
localid | 끈 | 현재 사용자의 UID. |
이메일 | 끈 | 사용자의 이메일 주소. |
비밀번호 | 끈 | 암호의 해시 버전. |
ProviderUserInfo | JSON 개체 목록 | "제공자"및 "FederatedID"를 포함하는 모든 연결된 공급자 개체 목록. |
Idtoken | 끈 | 사용자를위한 새로운 Firebase Auth ID 토큰. |
RefreshToken | 끈 | Firebase Auth Refresh Token. |
만료 | 끈 | ID 토큰이 만료되는 초 수. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[FIREBASE_ID_TOKEN]","password":"[NEW_PASSWORD]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 이 응답에는 새로운 Firebase ID 토큰 및 사용자와 관련된 새로 고침 토큰이 포함되어 있습니다.
샘플 응답
{ "localId": "tRcfmLH7o2...", "email": "[user@example.com]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "[user@example.com]" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
일반적인 오류 코드
- invalid_id_token : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.
- 약한 _password : 비밀번호는 6 자 이상이어야합니다.
프로필 업데이트
Auth setAccountInfo
endpoint에 HTTP POST
요청을 발행하여 사용자의 프로필 (디스플레이 이름 / 사진 URL)을 업데이트 할 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]요청 바디 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
Idtoken | 끈 | 사용자를위한 Firebase Auth ID 토큰. |
이름 표시하기 | 끈 | 사용자의 새 디스플레이 이름. |
Photourl | 끈 | 사용자의 새 사진 URL. |
deleteattribute | 문자열 목록 | 삭제할 속성 목록, "display_name"또는 "photo_url". 이것은 이러한 값을 무효화합니다. |
ReturnSecureToken | 부울 | ID를 반환하고 새로 고침할지 여부. |
속성 이름 | 유형 | 설명 |
---|---|---|
localid | 끈 | 현재 사용자의 UID. |
이메일 | 끈 | 사용자의 이메일 주소. |
이름 표시하기 | 끈 | 사용자의 새 디스플레이 이름. |
Photourl | 끈 | 사용자의 새 사진 URL. |
비밀번호 | 끈 | 암호의 해시 버전. |
ProviderUserInfo | JSON 개체 목록 | "제공자"및 "FederatedID"를 포함하는 모든 연결된 공급자 개체 목록. |
Idtoken | 끈 | 사용자를위한 새로운 Firebase Auth ID 토큰. |
RefreshToken | 끈 | Firebase Auth Refresh Token. |
만료 | 끈 | ID 토큰이 만료되는 초 수. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[ID_TOKEN]","displayName":"[NAME]","photoUrl":"[URL]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "localId": "tRcfmLH...", "email": "user@example2.com", "displayName": "John Doe", "photoUrl": "[http://localhost:8080/img1234567890/photo.png]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example2.com", "displayName": "John Doe", "photoUrl": "http://localhost:8080/img1234567890/photo.png" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
일반적인 오류 코드
- invalid_id_token : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.
사용자 데이터를 얻습니다
Auth getAccountInfo
endpoint에 HTTP POST
요청을 발행하여 사용자의 데이터를 얻을 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]요청 바디 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
Idtoken | 끈 | 계정의 Firebase ID 토큰. |
속성 이름 | 유형 | 설명 |
---|---|---|
사용자 | JSON 개체 목록 | 주어진 Firebase ID 토큰과 관련된 계정. 자세한 내용은 아래를 확인하십시오. |
users
어레이 컨텐츠)속성 이름 | 유형 | 설명 |
---|---|---|
localid | 끈 | 현재 사용자의 UID. |
이메일 | 끈 | 계정의 이메일. |
이메일 보류 | 부울 | 계정의 이메일이 확인되었는지 여부. |
이름 표시하기 | 끈 | 계정의 표시 이름입니다. |
ProviderUserInfo | JSON 개체 목록 | "제공자"및 "FederatedID"를 포함하는 모든 연결된 공급자 개체 목록. |
Photourl | 끈 | 계정의 사진 URL. |
비밀번호 | 끈 | 암호의 해시 버전. |
passwordupdatedat | 더블 | 계정 비밀번호가 마지막으로 변경되었다는 타임 스탬프는 밀리 초입니다. |
유효한 | 끈 | Timestamp는 몇 초 만에 경계를 표시하기 전에 Firebase ID 토큰이 취소 된 것으로 간주됩니다. |
장애가 있는 | 부울 | 계정이 비활성화되었는지 여부. |
LastLoginat | 끈 | 계정이 마지막으로 로그인 한 밀리 초의 타임 스탬프. |
창조된다 | 끈 | 계정이 생성 된 밀리 초의 타임 스탬프. |
CustomAuth | 부울 | 계정이 개발자가 인증하는지 여부 |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 응답에는 계정과 관련된 모든 사용자 정보가 포함됩니다.
샘플 응답
{ "users": [ { "localId": "ZY1rJK0...", "email": "user@example.com", "emailVerified": false, "displayName": "John Doe", "providerUserInfo": [ { "providerId": "password", "displayName": "John Doe", "photoUrl": "http://localhost:8080/img1234567890/photo.png", "federatedId": "user@example.com", "email": "user@example.com", "rawId": "user@example.com", "screenName": "user@example.com" } ], "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "passwordHash": "...", "passwordUpdatedAt": 1.484124177E12, "validSince": "1484124177", "disabled": false, "lastLoginAt": "1484628946000", "createdAt": "1484124142000", "customAuth": false } ] }
일반적인 오류 코드
- invalid_id_token : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.
- user_not_found :이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.
이메일/비밀번호로 링크합니다
Auth setAccountInfo
endpoint에 HTTP POST
요청을 발행하여 이메일/비밀번호를 현재 사용자에게 연결할 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]요청 바디 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
Idtoken | 끈 | 자격 증명을 연결하려는 계정의 Firebase ID 토큰. |
이메일 | 끈 | 계정에 링크 할 이메일. |
비밀번호 | 끈 | 계정의 새 비밀번호. |
ReturnSecureToken | 끈 | ID를 반환하고 새로 고침할지 여부. 항상 사실이어야합니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
localid | 끈 | 현재 사용자의 UID. |
이메일 | 끈 | 계정의 이메일. |
이름 표시하기 | 끈 | 계정의 표시 이름입니다. |
Photourl | 끈 | 계정의 사진 URL. |
비밀번호 | 끈 | 암호의 해시 버전. |
ProviderUserInfo | JSON 개체 목록 | "제공자"및 "FederatedID"를 포함하는 모든 연결된 공급자 개체 목록. |
이메일 보류 | 부울 | 계정의 이메일이 확인되었는지 여부. |
Idtoken | 끈 | 사용자를위한 새로운 Firebase Auth ID 토큰. |
RefreshToken | 끈 | Firebase Auth Refresh Token. |
만료 | 끈 | ID 토큰이 만료되는 초 수. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[ID_TOKEN]","email":"[user@example.com]","password":"[PASS]","returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 이 응답에는 인증 된 사용자와 관련된 Firebase ID 토큰 및 새로 고침 토큰이 포함되어 있습니다.
샘플 응답
{ "localId": "huDwUz...", "email": "user@example.com", "displayName": "John Doe", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example.com" } ], "idToken": "[ID_TOKEN]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "emailVerified": false }
일반적인 오류 코드
- Credential_TOO_OLD_LOGIN_AGAIN : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.
- Token_Expired : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.
- invalid_id_token : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.
- 약한 _password : 비밀번호는 6 자 이상이어야합니다.
OAUTH 자격 증명과 링크
Auth verifyAssertion
endpoint에 HTTP POST
요청을 발행하여 OAUTH 자격 증명을 사용자에게 연결할 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]요청 바디 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
Idtoken | 끈 | 자격 증명을 연결하려는 계정의 Firebase ID 토큰. |
requesturi | 끈 | IDP가 사용자를 다시 리디렉션하는 URI. |
우체통 | 끈 | 자격 증명을 발행하는 Oauth 자격 증명 (ID 토큰 또는 액세스 토큰) 및 제공자 ID가 포함되어 있습니다. |
ReturnSecureToken | 부울 | ID를 반환하고 새로 고침할지 여부. 항상 사실이어야합니다. |
returnIdPcredential | 부울 | 다음 오류에서 OAUTH 자격 증명을 강제로 반환할지 여부 : Federated_user_ID_ALREADY_LINKED 및 이메일_Exists. |
속성 이름 | 유형 | 설명 |
---|---|---|
FederatedId | 끈 | 고유 ID는 IDP 계정을 식별합니다. |
제공자 | 끈 | 링크 된 공급자 ID (예 : Google 제공 업체의 "Google.com"). |
localid | 끈 | 인증 된 사용자의 UID. |
이메일 보류 | 부울 | 서명 이메일이 확인되었는지 여부. |
이메일 | 끈 | 계정의 이메일. |
oauthidtoken | 끈 | 사용 가능한 경우 OIDC ID 토큰. |
oauthaccesstoken | 끈 | 사용 가능한 경우 OAUTH 액세스 토큰. |
Oauthtokensecret | 끈 | 사용 가능한 경우 Oauth 1.0 토큰 비밀. |
Rawuserinfo | 끈 | 제공된 OAUTH 자격 증명에 해당하는 모든 IDP 데이터를 포함하는 Stringified JSON 응답. |
이름 | 끈 | 계정의 이름. |
성 | 끈 | 계정의 성. |
풀 이름 | 끈 | 계정의 전체 이름. |
이름 표시하기 | 끈 | 계정의 표시 이름입니다. |
Photourl | 끈 | 계정의 사진 URL. |
Idtoken | 끈 | 인증 된 사용자를위한 Firebase Auth ID 토큰. |
RefreshToken | 끈 | 인증 된 사용자를위한 Firebase Auth Refresh Token. |
만료 | 끈 | ID 토큰이 만료되는 초 수. |
OAUTH ID 토큰을 사용한 샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","idToken":"[FIREBASE_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 이 응답에는 인증 된 사용자와 관련된 Firebase ID 토큰 및 새로 고침 토큰이 포함되어 있습니다.
OAUTH ID 토큰으로 샘플 응답
{ "federatedId": "https://accounts.google.com/1234567890", "providerId": "google.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthIdToken": "[GOOGLE_ID_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
OAUTH 액세스 토큰을 사용한 샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[FACEBOOK_ACCESS_TOKEN]&providerId=[facebook.com]","idToken":"[FIREBASE_ID_TOKEN]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 이 응답에는 인증 된 사용자와 관련된 Firebase ID 토큰 및 새로 고침 토큰이 포함되어 있습니다.
OAUTH 액세스 토큰을 사용한 샘플 응답
{ "federatedId": "http://facebook.com/1234567890", "providerId": "facebook.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[FACEBOOK_ACCESS_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://scontent.xx.fbcdn.net/v/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
Twitter Oauth 1.0 자격 증명을 사용한 샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[TWITTER_ACCESS_TOKEN]&oauth_token_secret=[TWITTER_TOKEN_SECRET]&providerId=[twitter.com]","requestUri":"[http://localhost]","idToken":"[FIREBASE_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다. 이 응답에는 인증 된 사용자와 관련된 Firebase ID 토큰 및 새로 고침 토큰이 포함되어 있습니다.
Twitter Oauth 1.0 자격 증명으로 샘플 응답
{ "federatedId": "http://twitter.com/1234567890", "providerId": "twitter.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[OAUTH_ACCESS_TOKEN]", "oauthTokenSecret": "[OAUTH_TOKEN_SECRET]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "http://abs.twimg.com/sticky/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
일반적인 오류 코드
- Operation_Not_allowed :이 프로젝트에 해당 제공자가 비활성화되었습니다.
- invalid_idp_response : 제공된 인증 자격 증명은 기형 또는 만료되었습니다.
- invalid_id_token : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.
- email_exists : 이메일 주소는 이미 다른 계정에서 사용 중입니다.
- federated_user_id_already_linked :이 자격 증명은 이미 다른 사용자 계정과 관련이 있습니다.
링크 공급자
Auth setAccountInfo
endpoint에 HTTP POST
요청을 발행하여 현재 사용자의 공급자를 해제 할 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]요청 본체 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
Idtoken | 끈 | 계정의 Firebase ID 토큰. |
deleteprovider | 문자열 목록 | 링크되지 않은 공급자 ID 목록 (예 : 'Google.com', 'Password'등). |
속성 이름 | 유형 | 설명 |
---|---|---|
localid | 끈 | 현재 사용자의 UID. |
이메일 | 끈 | 계정의 이메일. |
이름 표시하기 | 끈 | 계정의 표시 이름입니다. |
Photourl | 끈 | 계정의 사진 URL. |
비밀번호 | 끈 | 암호의 해시 버전. |
ProviderUserInfo | JSON 개체 목록 | "제공자"및 "FederatedID"를 포함하는 모든 연결된 공급자 개체 목록. |
이메일 보류 | 부울 | 계정의 이메일이 확인되었는지 여부. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]","deleteProvider":["[facebook.com]"]}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "localId": "huDwUz...", "email": "user@example.com", "displayName": "John Doe", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "passwordHash": "...", "providerUserInfo": [ { "providerId": "google.com", "federatedId": "1234567890", "displayName": "John Doe", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg" }, { "providerId": "password", "federatedId": "user@example.com" } ], "emailVerified": "true" }
일반적인 오류 코드
- invalid_id_token : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.
이메일 확인을 보내십시오
Auth getOobConfirmationCode
Endpoint에 HTTP POST
요청을 발행하여 현재 사용자에 대한 이메일 확인을 보낼 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]옵션 헤더
속성 이름 | 설명 |
---|---|
X-Firebase-Locale | 사용자의 로케일에 해당하는 언어 코드. 이것을 전달하면 사용자에게 전송 된 이메일 확인이 현지화됩니다. |
속성 이름 | 유형 | 설명 |
---|---|---|
요청 유형 | 끈 | 보낼 확인 코드의 유형. 항상 "verify_email"이어야합니다. |
Idtoken | 끈 | 확인할 사용자의 Firebase ID 토큰. |
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 끈 | 계정의 이메일. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"requestType":"VERIFY_EMAIL","idToken":"[FIREBASE_ID_TOKEN]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "email": "user@example.com" }
일반적인 오류 코드
- invalid_id_token : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.
- user_not_found :이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.
이메일 확인을 확인하십시오
Auth setAccountInfo
엔드 포인트에 HTTP POST
요청을 발행하여 이메일 확인 코드를 확인할 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]요청 바디 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
OOBCODE | 끈 | 이메일 확인을 위해 사용자의 이메일로 전송 된 조치 코드. |
속성 이름 | 유형 | 설명 |
---|---|---|
이메일 | 끈 | 계정의 이메일. |
이름 표시하기 | 끈 | 계정의 표시 이름입니다. |
Photourl | 끈 | 계정의 사진 URL. |
비밀번호 | 끈 | 암호 해시. |
ProviderUserInfo | JSON 개체 목록 | "제공자"및 "FederatedID"를 포함하는 모든 연결된 공급자 개체 목록. |
이메일 보류 | 부울 | 계정의 이메일이 확인되었는지 여부. |
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"oobCode":"[VERIFICATION_CODE]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
샘플 응답
{ "localId": "FhyStE...", "email": "user@example.com", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example.com" } ] }
일반적인 오류 코드
- EXPRIED_OOB_CODE : 작업 코드가 만료되었습니다.
- invalid_oob_code : 동작 코드가 유효하지 않습니다. 코드가 기형, 만료 또는 이미 사용 된 경우 발생할 수 있습니다.
- user_disabled : 관리자가 사용자 계정을 비활성화했습니다.
- email_not_found :이 식별자에 해당하는 사용자 레코드가 없습니다. 사용자가 삭제되었을 수 있습니다.
계정 삭제
auth deleteAccount
endpoint에 http POST
요청을 발행하여 현재 사용자를 삭제할 수 있습니다.
방법 : 게시물
콘텐츠 유형: 애플리케이션/json
엔드 포인트https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]요청 바디 페이로드
속성 이름 | 유형 | 설명 |
---|---|---|
Idtoken | 끈 | 삭제할 사용자의 Firebase ID 토큰. |
속성 이름 | 유형 | 설명 |
---|
샘플 요청
curl 'https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'
성공적인 요청은 200 OK
HTTP 상태 코드로 표시됩니다.
일반적인 오류 코드
- invalid_id_token : 사용자의 자격 증명이 더 이상 유효하지 않습니다. 사용자는 다시 로그인해야합니다.
- USER_NOT_FOUND: There is no user record corresponding to this identifier. The user may have been deleted.
Firebase Authentication Emulator
The Firebase Local Emulator Suite includes an Authentication emulator , which can be used for local prototyping and testing of authentication flows. The emulator exposes the following REST endpoints.
Clear user accounts
Remove all accounts in the specified project, regardless of state.
Method: DELETE
Endpoint Note that 9099
is the default port for the Authentication emulator. Check terminal output for the actual port being used.
http://localhost:9099/emulator/v1/projects/{project-id}/accounts
Get emulator configuration
Get emulator-specific configuration for the specified project.
Method: GET
Endpoint Note that 9099
is the default port for the Authentication emulator. Check terminal output for the actual port being used.
http://localhost:9099/emulator/v1/projects/{project-id}/configResponse Payload
속성 이름 | 유형 | 설명 |
---|---|---|
signIn | 물체 | signIn configuration object containing a single key, allowDuplicateEmails (boolean). |
Patch emulator configuration
Update emulator-specific configuration for the specified project.
Method: PATCH
Endpoint Note that 9099
is the default port for the Authentication emulator. Check terminal output for the actual port being used.
콘텐츠 유형: 애플리케이션/json
http://localhost:9099/emulator/v1/projects/{project-id}/configRequest Body Payload
속성 이름 | 유형 | 설명 |
---|---|---|
signIn | 물체 | Desired signIn configuration object with single key, allowDuplicateEmails (boolean). |
속성 이름 | 유형 | 설명 |
---|---|---|
signIn | 물체 | Post-request signIn configuration object with single key, allowDuplicateEmails (boolean). |
Retrieve out-of-band authentication codes
If the authentication flows you are testing would normally generate out-of-band codes (eg, email verification codes, password reset codes), the emulator stores such codes internally until they are used.
Method: GET
Endpoint Note that 9099
is the default port for the Authentication emulator. Check terminal output for the actual port being used.
http://localhost:9099/emulator/v1/projects/{project-id}/oobCodesResponse Payload
속성 이름 | 유형 | 설명 |
---|---|---|
oobCodes | 정렬 | An array of objects containing details of all pending confirmation codes. Each object contains email (string), oobCode (string), oobLink (string), and requestType (string) |
Retrieve SMS verification codes
If you are testing phone/SMS authentication flows, the emulator stores such SMS codes internally until they are used.
Method: GET
Endpoint Note that 9099
is the default port for the Authentication emulator. Check terminal output for the actual port being used.
http://localhost:9099/emulator/v1/projects/{project-id}/verificationCodesResponse Payload
속성 이름 | 유형 | 설명 |
---|---|---|
verificationCodes | 정렬 | An array of objects containing details of all pending verification codes. Each object contains phoneNumber (string) and sessionCode (string). |
Error Response
Error response format
Anytime an error is returned from the backend server for any of the APIs above, the response will have the following format.
샘플 응답
{ "error": { "errors": [ { "domain": "global", "reason": "invalid", "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN" } ], "code": 400, "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN" } }
The error code is obtained from the message field. All of the above error codes refer to the message field content.