Interfejs API typu REST Firebase Auth

Wykorzystanie interfejsu API

Możesz wysyłać zapytania do backendu Uwierzytelniania Firebase za pomocą interfejsu API REST. Można to wykorzystać do różnych operacji, takich jak jak tworzenie nowych użytkowników, logowanie się do istniejących i edytowanie lub usuwanie tych użytkowników.

W tym dokumencie API_KEY odnosi się do klucza interfejsu Web API. które można uzyskać na ustawienia projektu w konsoli administracyjnej.

Niestandardowy token wymiany dla identyfikatora i tokenu odświeżania

Możesz wymienić niestandardowy token uwierzytelniania na identyfikator i token odświeżania, wysyłając kod HTTP Żądanie POST do punktu końcowego uwierzytelniania verifyCustomToken.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
token ciąg znaków Niestandardowy token uwierzytelniania Firebase, z którego można utworzyć identyfikator i parę tokenów odświeżania.
zwrotSecureToken wartość logiczna Określa, czy zwracać identyfikator i token odświeżania. Wymagana jest zawsze wartość true (prawda).
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
idToken ciąg znaków Token identyfikatora uwierzytelniania Firebase wygenerowany na podstawie podanego tokena niestandardowego.
OdświeżToken ciąg znaków Token odświeżania Uwierzytelniania Firebase wygenerowany na podstawie podanego tokena niestandardowego.
wygasaZa ciąg znaków Liczba sekund, po których token identyfikatora wygasa.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź zawiera token identyfikatora Firebase i token odświeżania powiązany za pomocą tokena niestandardowego.

Przykładowa odpowiedź

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

Typowe kody błędów

  • INVALID_CUSTOM_TOKEN: format tokena niestandardowego jest nieprawidłowy lub token jest nieprawidłowy dla z jakiegoś powodu (np. wygasła, podpis jest nieprawidłowy itp.)
  • CREDENTIAL_MISMATCH: Token niestandardowy odpowiada innemu projektowi Firebase.

Wymiana tokena odświeżania na token identyfikatora

Możesz odświeżyć token identyfikatora Firebase, wysyłając HTTP Żądanie POST do punktu końcowego securetoken.googleapis.com.

Metoda: POST

Content-Type: aplikacja/x-www-form-urlencoded

Punkt końcowy
https://securetoken.googleapis.com/v1/token?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
grant_type ciąg znaków Typ przyznania tokena odświeżania, zawsze „refresh_token”.
token_odświeżania ciąg znaków Token odświeżania uwierzytelniania Firebase.
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
expires_in ciąg znaków Liczba sekund, po których token identyfikatora wygasa.
token_type ciąg znaków Typ tokena odświeżania, zawsze „Bearer”.
token_odświeżania ciąg znaków Token odświeżania uwierzytelniania Firebase podany w żądaniu lub nowy token odświeżania.
token_id ciąg znaków Token identyfikatora uwierzytelniania Firebase.
user_id ciąg znaków Identyfikator UID odpowiadający podanemu tokenowi identyfikatora.
project_id (identyfikator projektu), ciąg znaków Identyfikator Twojego projektu Firebase.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź zawiera nowy token identyfikatora Firebase i token odświeżania.

Przykładowa odpowiedź

{
  "expires_in": "3600",
  "token_type": "Bearer",
  "refresh_token": "[REFRESH_TOKEN]",
  "id_token": "[ID_TOKEN]",
  "user_id": "tRcfmLH7o2XrNELi...",
  "project_id": "1234567890"
}

Typowe kody błędów

  • TOKEN_Wygasła: dane logowania użytkownika straciły ważność. Użytkownik musi się ponownie zalogować.
  • USER_DISABLED: konto użytkownika zostało wyłączone przez administratora.
  • USER_NOT_FOUND: nie znaleziono użytkownika odpowiadającego tokenowi odświeżania. Prawdopodobnie konto użytkownika zostało usunięte.
  • Klucz interfejsu API jest nieprawidłowy. Podaj prawidłowy klucz interfejsu API. (podano nieprawidłowy klucz interfejsu API)
  • INVALID_REFRESH_TOKEN: podano nieprawidłowy token odświeżania.
  • Odebrano nieprawidłowy ładunek JSON. Nieznana nazwa „refresh_tokens”: nie można powiązać zapytania . Pole „refresh_tokens” nie można znaleźć w wiadomości z żądaniem.
  • INVALID_GRANT_TYPE: podany typ uwierzytelnienia jest nieprawidłowy.
  • MISSING_REFRESH_TOKEN: nie podano tokena odświeżania.
  • PROJECT_NUMBER_MISMATCH: Numer projektu dla tokena odświeżania nie jest zgodny z podanym kluczem interfejsu API.

Zarejestruj się za pomocą adresu e-mail / hasła

Możesz utworzyć nowego użytkownika z adresem e-mail i hasłem, wysyłając kod HTTP. Żądanie POST do punktu końcowego uwierzytelniania signupNewUser.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
e-mail ciąg znaków Adres e-mail użytkownika, który ma utworzyć.
hasło ciąg znaków Hasło, które użytkownik ma utworzyć.
zwrotSecureToken wartość logiczna Określa, czy zwracać identyfikator i token odświeżania. Wymagana jest zawsze wartość true (prawda).
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
idToken ciąg znaków Token identyfikatora uwierzytelniania Firebase dla nowo utworzonego użytkownika.
e-mail ciąg znaków Adres e-mail nowo utworzonego użytkownika.
OdświeżToken ciąg znaków Token odświeżania uwierzytelniania Firebase dla nowo utworzonego użytkownika.
wygasaZa ciąg znaków Liczba sekund, po których token identyfikatora wygasa.
Identyfikator lokalny ciąg znaków Identyfikator UID nowo utworzonego użytkownika.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź zawiera token identyfikatora Firebase i token odświeżania powiązany na nowym koncie.

Przykładowa odpowiedź

{
  "idToken": "[ID_TOKEN]",
  "email": "[user@example.com]",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "localId": "tRcfmLH7..."
}

Typowe kody błędów

  • EMAIL_EXISTS: ten adres e-mail jest już używany przez inne konto.
  • OPERATION_NOT_ALLOWED: logowanie za pomocą hasła jest w tym projekcie wyłączone.
  • TOO_MANY_ATTEMPTS_TRY_LATER: zablokowaliśmy wszystkie żądania z tego urządzenia z powodu nietypowego działania. Spróbuj ponownie później.

Zaloguj się za pomocą adresu e-mail / hasła

Możesz zalogować użytkownika za pomocą adresu e-mail i hasła, wysyłając kod HTTP Żądanie POST do punktu końcowego uwierzytelniania verifyPassword.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
e-mail ciąg znaków Adres e-mail, za pomocą którego użytkownik się loguje.
hasło ciąg znaków Hasło do konta.
zwrotSecureToken wartość logiczna Określa, czy zwracać identyfikator i token odświeżania. Wymagana jest zawsze wartość true (prawda).
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
idToken ciąg znaków Token identyfikatora uwierzytelniania Firebase dla uwierzytelnionego użytkownika.
e-mail ciąg znaków Adres e-mail uwierzytelnionego użytkownika.
OdświeżToken ciąg znaków Token odświeżania uwierzytelniania Firebase dla uwierzytelnionego użytkownika.
wygasaZa ciąg znaków Liczba sekund, po których token identyfikatora wygasa.
Identyfikator lokalny ciąg znaków Identyfikator UID uwierzytelnionego użytkownika.
zarejestrowano wartość logiczna Wskazuje, czy adres e-mail jest przypisany do istniejącego konta.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź zawiera token identyfikatora Firebase i token odświeżania powiązany za pomocą istniejącego adresu e-mail i konta.

Przykładowa odpowiedź

{
  "localId": "ZY1rJK0eYLg...",
  "email": "[user@example.com]",
  "displayName": "",
  "idToken": "[ID_TOKEN]",
  "registered": true,
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600"
}

Typowe kody błędów

  • EMAIL_NOT_FOUND: nie ma rekordu użytkownika odpowiadającego temu identyfikatorowi. Użytkownik może zostały usunięte.
  • invalid_PASSWORD: Hasło jest nieprawidłowe lub użytkownik nie ma hasła.
  • USER_DISABLED: konto użytkownika zostało wyłączone przez administratora.

Zaloguj się anonimowo

Możesz zalogować się anonimowo, wysyłając żądanie HTTP Żądanie POST do punktu końcowego uwierzytelniania signupNewUser.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
zwrotSecureToken wartość logiczna Określa, czy zwracać identyfikator i token odświeżania. Wymagana jest zawsze wartość true (prawda).
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
idToken ciąg znaków Token identyfikatora uwierzytelniania Firebase dla nowo utworzonego użytkownika.
e-mail ciąg znaków To pole powinno być puste, ponieważ użytkownik jest anonimowy.
OdświeżToken ciąg znaków Token odświeżania uwierzytelniania Firebase dla nowo utworzonego użytkownika.
wygasaZa ciąg znaków Liczba sekund, po których token identyfikatora wygasa.
Identyfikator lokalny ciąg znaków Identyfikator UID nowo utworzonego użytkownika.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź zawiera token identyfikatora Firebase i token odświeżania powiązany z anonimowym użytkownikiem.

Przykładowa odpowiedź

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

Typowe kody błędów

  • OPERATION_NOT_ALLOWED: anonimowe logowanie się użytkowników jest wyłączone w tym projekcie.

Zaloguj się za pomocą danych logowania OAuth

Możesz zalogować użytkownika, korzystając z danych uwierzytelniających OAuth, wysyłając kod HTTP Żądanie POST do punktu końcowego uwierzytelniania verifyAssertion.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
requestUri ciąg znaków Identyfikator URI, do którego dostawca tożsamości przekierowuje użytkownika z powrotem.
treść posta ciąg znaków Zawiera dane logowania OAuth (token identyfikatora lub token dostępu) oraz identyfikator dostawcy, który powoduje problemy danych logowania.
zwrotSecureToken wartość logiczna Określa, czy zwracać identyfikator i token odświeżania. Wymagana jest zawsze wartość true (prawda).
zwrotne dane_uwierzytelniające IDp wartość logiczna Określa, czy wymusić zwrot danych logowania OAuth w przypadku tych błędów: FEDERATED_USER_ID_ALREADY_LINKED i EMAIL_EXISTS.
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
identyfikator sfederowany ciąg znaków Unikalny identyfikator określa konto dostawcy tożsamości.
Identyfikator dostawcy ciąg znaków Identyfikator połączonego dostawcy (np. „google.com” w przypadku dostawcy Google).
Identyfikator lokalny ciąg znaków Identyfikator UID uwierzytelnionego użytkownika.
adres e-mailZweryfikowany wartość logiczna Wskazuje, czy adres e-mail logowania został zweryfikowany.
e-mail ciąg znaków Adres e-mail konta.
Token_identyfikatora OAuth ciąg znaków Token identyfikatora OIDC, jeśli jest dostępny.
Token dostępu oauth ciąg znaków Token dostępu OAuth, jeśli jest dostępny.
Obiekt tajny oauthToken ciąg znaków Obiekt tajny tokena OAuth 1.0, jeśli jest dostępny.
Informacje o użytkowniku ciąg znaków Utworzona w postaci ciągu znaków odpowiedź JSON zawierająca wszystkie dane dostawcy tożsamości odpowiadające podanemu Dane logowania OAuth.
imię ciąg znaków Imię konta.
nazwisko ciąg znaków Nazwisko właściciela konta.
imięiNazwisko ciąg znaków Pełna nazwa konta.
wyświetlanaNazwa ciąg znaków Wyświetlana nazwa konta.
adres URL zdjęcia ciąg znaków Adres URL zdjęcia na koncie.
idToken ciąg znaków Token identyfikatora uwierzytelniania Firebase dla uwierzytelnionego użytkownika.
OdświeżToken ciąg znaków Token odświeżania uwierzytelniania Firebase dla uwierzytelnionego użytkownika.
wygasaZa ciąg znaków Liczba sekund, po których token identyfikatora wygasa.
wymaga potwierdzenia wartość logiczna Wskazuje, czy istnieje już inne konto z tymi samymi danymi logowania. Użytkownik będzie musiał aby zalogować się na pierwotne konto, a następnie połączyć z nim obecne dane logowania.

Przykładowe żądanie z tokenem identyfikatora OAuth

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź zawiera token identyfikatora Firebase i token odświeżania powiązany z uwierzytelnionym użytkownikiem.

Przykładowa odpowiedź z tokenem identyfikatora OAuth

{
  "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\", ...}"
}

Przykładowe żądanie z tokenem dostępu 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}'

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź zawiera token identyfikatora Firebase i token odświeżania powiązany z uwierzytelnionym użytkownikiem.

Przykładowa odpowiedź z tokenem dostępu 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\", ...}"
}

Przykładowe żądanie z danymi logowania OAuth 1.0 na Twitterze

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź zawiera token identyfikatora Firebase i token odświeżania powiązany z uwierzytelnionym użytkownikiem.

Przykładowa odpowiedź z danymi logowania OAuth 1.0 na Twitterze

{
  "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\", ...}"
}

Typowe kody błędów

  • OPERATION_NOT_ALLOWED: odpowiedni dostawca w tym projekcie jest wyłączony.
  • INVALID_IDP_Response: podane dane uwierzytelniające mają nieprawidłowy format lub straciły ważność.

Dostawcy pobierania dla poczty e-mail

Możesz przejrzeć wszystkich dostawców powiązanych z konkretnym adresem e-mail, wysyłając kod HTTP Żądanie POST do punktu końcowego uwierzytelniania createAuthUri.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
identyfikator ciąg znaków Adres e-mail użytkownika
kontynuacja URI ciąg znaków Identyfikator URI, do którego dostawca tożsamości przekierowuje użytkownika z powrotem. W tym przypadku jest to tylko obecny adres URL.
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
allProvider, Lista ciągów znaków Lista dostawców, u których użytkownik wcześniej się logował.
zarejestrowano wartość logiczna Wskazuje, czy adres e-mail jest przypisany do istniejącego konta

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź zawiera listę dostawców powiązanych z tym e-mailem.

Przykładowa odpowiedź

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

Typowe kody błędów

  • INVALID_EMAIL: adres e-mail ma nieprawidłowy format.

Wyślij e-maila na temat resetowania hasła

Możesz wysłać wiadomość e-mail do zresetowania hasła, wysyłając wiadomość HTTP Żądanie POST do punktu końcowego uwierzytelniania getOobConfirmationCode.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
Opcjonalne nagłówki
Nazwa właściwości Opis
Ustawienia języka X-Firebase Kod języka odpowiadający językowi użytkownika. Jeśli zaliczysz ten ruch, zostaną zlokalizowane wysłany do użytkownika e-maila na temat resetowania hasła.
Ładunek treści żądania
Nazwa właściwości Typ Opis
requestType ciąg znaków Rodzaj kodu OOB do zwrócenia. Właściwa wartość to „PASSWORD_RESET” w celu zresetowania hasła.
e-mail ciąg znaków Adres e-mail użytkownika.
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
e-mail ciąg znaków Adres e-mail użytkownika.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu.

Przykładowa odpowiedź

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

Typowe kody błędów

  • EMAIL_NOT_FOUND: nie ma rekordu użytkownika odpowiadającego temu identyfikatorowi. Użytkownik może zostały usunięte.

Zweryfikuj kod resetowania hasła

Możesz sprawdzić kod resetowania hasła, wysyłając żądanie HTTP Żądanie POST do punktu końcowego uwierzytelniania resetPassword.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
Kod OobCode ciąg znaków Kod działania e-mail wysłany na adres e-mail użytkownika w celu zresetowania hasła.
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
e-mail ciąg znaków Adres e-mail użytkownika.
requestType ciąg znaków Typ kodu działania e-maila. Powinno być „PASSWORD_RESET”.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu.

Przykładowa odpowiedź

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

Typowe kody błędów

  • OPERATION_NOT_ALLOWED: logowanie za pomocą hasła jest w tym projekcie wyłączone.
  • expirationD_OOB_CODE: kod działania wygasł.
  • INVALID_OOB_CODE: kod działania jest nieprawidłowy. Zdarza się to, jeśli kod jest uszkodzony, wygasła lub została już wykorzystana.

Potwierdź zresetowanie hasła

Aby zastosować zmianę hasła, wyślij żądanie HTTP Żądanie POST do punktu końcowego uwierzytelniania resetPassword.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
Kod OobCode ciąg znaków Kod działania e-mail wysłany na adres e-mail użytkownika w celu zresetowania hasła.
noweHasło ciąg znaków Nowe hasło użytkownika.
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
e-mail ciąg znaków Adres e-mail użytkownika.
requestType ciąg znaków Typ kodu działania e-maila. Powinno być „PASSWORD_RESET”.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu.

Przykładowa odpowiedź

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

Typowe kody błędów

  • OPERATION_NOT_ALLOWED: logowanie za pomocą hasła jest w tym projekcie wyłączone.
  • expirationD_OOB_CODE: kod działania wygasł.
  • INVALID_OOB_CODE: kod działania jest nieprawidłowy. Zdarza się to, jeśli kod jest uszkodzony, wygasła lub została już wykorzystana.
  • USER_DISABLED: konto użytkownika zostało wyłączone przez administratora.

Zmień adres e-mail

Możesz zmienić adres e-mail użytkownika, wysyłając żądanie HTTP Żądanie POST do punktu końcowego uwierzytelniania setAccountInfo.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Opcjonalne nagłówki
Nazwa właściwości Opis
Ustawienia języka X-Firebase Kod języka odpowiadający językowi użytkownika. Jeśli zaliczysz ten ruch, zostaną zlokalizowane informacje o wycofaniu zmiany adresu e-mail wysłane do użytkownika.
Ładunek treści żądania
Nazwa właściwości Typ Opis
idToken ciąg znaków Token identyfikatora uwierzytelniania Firebase dla użytkownika.
e-mail ciąg znaków Nowy adres e-mail użytkownika.
zwrotSecureToken wartość logiczna Określa, czy zwracać identyfikator i token odświeżania.
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
Identyfikator lokalny ciąg znaków Identyfikator UID bieżącego użytkownika.
e-mail ciąg znaków Adres e-mail użytkownika.
hasz hasła ciąg znaków Wersja hasła z algorytmem hashującym.
Informacje o użytkowniku dostawcy Lista obiektów JSON Lista wszystkich połączonych obiektów dostawców, które zawierają „providerId” i „federatedId”.
idToken ciąg znaków Nowy token identyfikatora uwierzytelniania Firebase dla użytkownika.
OdświeżToken ciąg znaków Token odświeżania uwierzytelniania Firebase.
wygasaZa ciąg znaków Liczba sekund, po których token identyfikatora wygasa.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź zawiera nowy token identyfikatora Firebase i powiązany token odświeżania z użytkownikiem.

Przykładowa odpowiedź

{
  "localId": "tRcfmLH7o2...",
  "email": "[user@example2.com]",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "[user@example2.com]"
    }
  ],
  "idToken": "[NEW_ID_TOKEN]",
  "refreshToken": "[NEW_REFRESH_TOKEN]",
  "expiresIn": "3600"
}

Typowe kody błędów

  • EMAIL_EXISTS: ten adres e-mail jest już używany przez inne konto.
  • INVALID_ID_TOKEN:Dane logowania użytkownika straciły ważność. Użytkownik musi się ponownie zalogować.

Zmień hasło

Hasło użytkownika możesz zmienić, wysyłając żądanie HTTP Żądanie POST do punktu końcowego uwierzytelniania setAccountInfo.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
idToken ciąg znaków Token identyfikatora uwierzytelniania Firebase dla użytkownika.
hasło ciąg znaków Nowe hasło użytkownika.
zwrotSecureToken wartość logiczna Określa, czy zwracać identyfikator i token odświeżania.
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
Identyfikator lokalny ciąg znaków Identyfikator UID bieżącego użytkownika.
e-mail ciąg znaków Adres e-mail użytkownika.
hasz hasła ciąg znaków Wersja hasła z algorytmem hashującym.
Informacje o użytkowniku dostawcy Lista obiektów JSON Lista wszystkich połączonych obiektów dostawców, które zawierają „providerId” i „federatedId”.
idToken ciąg znaków Nowy token identyfikatora uwierzytelniania Firebase dla użytkownika.
OdświeżToken ciąg znaków Token odświeżania uwierzytelniania Firebase.
wygasaZa ciąg znaków Liczba sekund, po których token identyfikatora wygasa.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź zawiera nowy token identyfikatora Firebase i powiązany token odświeżania z użytkownikiem.

Przykładowa odpowiedź

{
  "localId": "tRcfmLH7o2...",
  "email": "[user@example.com]",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "[user@example.com]"
    }
  ],
  "idToken": "[NEW_ID_TOKEN]",
  "refreshToken": "[NEW_REFRESH_TOKEN]",
  "expiresIn": "3600"
}

Typowe kody błędów

  • INVALID_ID_TOKEN:Dane logowania użytkownika straciły ważność. Użytkownik musi się ponownie zalogować.
  • WEAK_PASSWORD: Hasło musi mieć co najmniej 6 znaków.

Zaktualizuj profil

Można zaktualizować profil użytkownika (wyświetlaną nazwę / adres URL zdjęcia), wysyłając kod HTTP Żądanie POST do punktu końcowego uwierzytelniania setAccountInfo.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
idToken ciąg znaków Token identyfikatora uwierzytelniania Firebase dla użytkownika.
wyświetlanaNazwa ciąg znaków Nowa wyświetlana nazwa użytkownika.
adres URL zdjęcia ciąg znaków Nowy adres URL zdjęcia użytkownika.
deleteAttribute Lista ciągów znaków Lista atrybutów do usunięcia, „DISPLAY_NAME” lub „PHOTO_URL”. Spowoduje to unieważnienie tych wartości .
zwrotSecureToken wartość logiczna Określa, czy zwracać identyfikator i token odświeżania.
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
Identyfikator lokalny ciąg znaków Identyfikator UID bieżącego użytkownika.
e-mail ciąg znaków Adres e-mail użytkownika.
wyświetlanaNazwa ciąg znaków Nowa wyświetlana nazwa użytkownika.
adres URL zdjęcia ciąg znaków Nowy adres URL zdjęcia użytkownika.
hasz hasła ciąg znaków Wersja hasła z algorytmem hashującym.
Informacje o użytkowniku dostawcy Lista obiektów JSON Lista wszystkich połączonych obiektów dostawców, które zawierają „providerId” i „federatedId”.
idToken ciąg znaków Nowy token identyfikatora uwierzytelniania Firebase dla użytkownika.
OdświeżToken ciąg znaków Token odświeżania uwierzytelniania Firebase.
wygasaZa ciąg znaków Liczba sekund, po których token identyfikatora wygasa.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu.

Przykładowa odpowiedź

{
  "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"
}

Typowe kody błędów

  • INVALID_ID_TOKEN:Dane logowania użytkownika straciły ważność. Użytkownik musi się ponownie zalogować.

Pobieranie danych użytkownika

Możesz uzyskać dane użytkownika, wysyłając żądanie HTTP Żądanie POST do punktu końcowego uwierzytelniania getAccountInfo.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
idToken ciąg znaków Token identyfikatora Firebase konta.
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
użytkownicy Lista obiektów JSON Konto powiązane z podanym tokenem identyfikatora Firebase. Sprawdź poniżej .
Ładunek odpowiedzi (zawartość tablicy users)
Nazwa właściwości Typ Opis
Identyfikator lokalny ciąg znaków Identyfikator UID bieżącego użytkownika.
e-mail ciąg znaków Adres e-mail konta.
adres e-mailZweryfikowany wartość logiczna Wskazuje, czy adres e-mail powiązany z kontem został zweryfikowany.
wyświetlanaNazwa ciąg znaków Wyświetlana nazwa konta.
Informacje o użytkowniku dostawcy Lista obiektów JSON Lista wszystkich połączonych obiektów dostawców, które zawierają „providerId” i „federatedId”.
adres URL zdjęcia ciąg znaków Adres URL zdjęcia na koncie.
hasz hasła ciąg znaków Wersja hasła z algorytmem hashującym.
HasłoZaktualizowane o double, Sygnatura czasowa (w milisekundach) ostatniej zmiany hasła do konta.
prawidłowy od ciąg znaków Sygnatura czasowa (w sekundach), która wyznacza granicę, przed którą znajduje się token identyfikatora Firebase uznanych za unieważnione.
wyłączona wartość logiczna Określa, czy konto jest wyłączone.
lastLoginAt ciąg znaków Sygnatura czasowa (w milisekundach) ostatniego logowania na konto.
utworzono ciąg znaków Sygnatura czasowa (w milisekundach), w której utworzono konto.
customAuth wartość logiczna Czy konto jest uwierzytelnione przez dewelopera.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź będzie zawierać wszystkie informacje o użytkowniku powiązane z kontem.

Przykładowa odpowiedź

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

Typowe kody błędów

  • INVALID_ID_TOKEN:Dane logowania użytkownika straciły ważność. Użytkownik musi się ponownie zalogować.
  • USER_NOT_FOUND: nie ma rekordu użytkownika odpowiadającego temu identyfikatorowi. Użytkownik może zostały usunięte.

Możesz powiązać adres e-mail i hasło z bieżącym użytkownikiem, wysyłając kod HTTP Żądanie POST do punktu końcowego uwierzytelniania setAccountInfo.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
idToken ciąg znaków Token identyfikatora Firebase dla konta, z którym próbujesz połączyć dane uwierzytelniające.
e-mail ciąg znaków Adres e-mail, który ma zostać połączony z kontem.
hasło ciąg znaków Nowe hasło do konta.
zwrotSecureToken ciąg znaków Określa, czy zwracać identyfikator i token odświeżania. Wymagana jest zawsze wartość true (prawda).
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
Identyfikator lokalny ciąg znaków Identyfikator UID bieżącego użytkownika.
e-mail ciąg znaków Adres e-mail konta.
wyświetlanaNazwa ciąg znaków Wyświetlana nazwa konta.
adres URL zdjęcia ciąg znaków Adres URL zdjęcia na koncie.
hasz hasła ciąg znaków Wersja hasła z algorytmem hashującym.
Informacje o użytkowniku dostawcy Lista obiektów JSON Lista wszystkich połączonych obiektów dostawców, które zawierają „providerId” i „federatedId”.
adres e-mailZweryfikowany wartość logiczna Wskazuje, czy adres e-mail powiązany z kontem został zweryfikowany.
idToken ciąg znaków Nowy token identyfikatora uwierzytelniania Firebase dla użytkownika.
OdświeżToken ciąg znaków Token odświeżania uwierzytelniania Firebase.
wygasaZa ciąg znaków Liczba sekund, po których token identyfikatora wygasa.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź zawiera token identyfikatora Firebase i token odświeżania powiązany z parametrem uwierzytelnionego użytkownika.

Przykładowa odpowiedź

{
  "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
}

Typowe kody błędów

  • CREDENTIAL_TOO_OLD_LOGIN_AGAIN: Dane logowania użytkownika straciły ważność. Użytkownik musi: zaloguj się ponownie.
  • TOKEN_Wygasła: dane logowania użytkownika straciły ważność. Użytkownik musi się ponownie zalogować.
  • INVALID_ID_TOKEN:Dane logowania użytkownika straciły ważność. Użytkownik musi się ponownie zalogować.
  • WEAK_PASSWORD: Hasło musi mieć co najmniej 6 znaków.

Dane logowania OAuth możesz połączyć z użytkownikiem, wysyłając kod HTTP Żądanie POST do punktu końcowego uwierzytelniania verifyAssertion.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
idToken ciąg znaków Token identyfikatora Firebase dla konta, z którym próbujesz połączyć dane uwierzytelniające.
requestUri ciąg znaków Identyfikator URI, do którego dostawca tożsamości przekierowuje użytkownika z powrotem.
treść posta ciąg znaków Zawiera dane logowania OAuth (token identyfikatora lub token dostępu) oraz identyfikator dostawcy, który powoduje problemy danych logowania.
zwrotSecureToken wartość logiczna Określa, czy zwracać identyfikator i token odświeżania. Wymagana jest zawsze wartość true (prawda).
zwrotne dane_uwierzytelniające IDp wartość logiczna Określa, czy wymusić zwrot danych logowania OAuth w przypadku tych błędów: FEDERATED_USER_ID_ALREADY_LINKED i EMAIL_EXISTS.
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
identyfikator sfederowany ciąg znaków Unikalny identyfikator określa konto dostawcy tożsamości.
Identyfikator dostawcy ciąg znaków Identyfikator połączonego dostawcy (np. „google.com” w przypadku dostawcy Google).
Identyfikator lokalny ciąg znaków Identyfikator UID uwierzytelnionego użytkownika.
adres e-mailZweryfikowany wartość logiczna Czy adres e-mail logowania jest zweryfikowany.
e-mail ciąg znaków Adres e-mail konta.
Token_identyfikatora OAuth ciąg znaków Token identyfikatora OIDC, jeśli jest dostępny.
Token dostępu oauth ciąg znaków Token dostępu OAuth, jeśli jest dostępny.
Obiekt tajny oauthToken ciąg znaków Obiekt tajny tokena OAuth 1.0, jeśli jest dostępny.
Informacje o użytkowniku ciąg znaków Utworzona w postaci ciągu znaków odpowiedź JSON zawierająca wszystkie dane dostawcy tożsamości odpowiadające podanemu Dane logowania OAuth.
imię ciąg znaków Imię konta.
nazwisko ciąg znaków Nazwisko właściciela konta.
imięiNazwisko ciąg znaków Pełna nazwa konta.
wyświetlanaNazwa ciąg znaków Wyświetlana nazwa konta.
adres URL zdjęcia ciąg znaków Adres URL zdjęcia na koncie.
idToken ciąg znaków Token identyfikatora uwierzytelniania Firebase dla uwierzytelnionego użytkownika.
OdświeżToken ciąg znaków Token odświeżania uwierzytelniania Firebase dla uwierzytelnionego użytkownika.
wygasaZa ciąg znaków Liczba sekund, po których token identyfikatora wygasa.

Przykładowe żądanie z tokenem identyfikatora OAuth

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź zawiera token identyfikatora Firebase i token odświeżania powiązany z uwierzytelnionym użytkownikiem.

Przykładowa odpowiedź z tokenem identyfikatora OAuth

{
  "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\", ...}"
}

Przykładowe żądanie z tokenem dostępu 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}'

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź zawiera token identyfikatora Firebase i token odświeżania powiązany z uwierzytelnionym użytkownikiem.

Przykładowa odpowiedź z tokenem dostępu 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\", ...}"
}

Przykładowe żądanie z danymi logowania OAuth 1.0 na Twitterze

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu. Odpowiedź zawiera token identyfikatora Firebase i token odświeżania powiązany z uwierzytelnionym użytkownikiem.

Przykładowa odpowiedź z danymi logowania OAuth 1.0 na Twitterze

{
  "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\", ...}"
}

Typowe kody błędów

  • OPERATION_NOT_ALLOWED: odpowiedni dostawca w tym projekcie jest wyłączony.
  • INVALID_IDP_Response: podane dane uwierzytelniające mają nieprawidłowy format lub straciły ważność.
  • INVALID_ID_TOKEN:Dane logowania użytkownika straciły ważność. Użytkownik musi się ponownie zalogować.
  • EMAIL_EXISTS: ten adres e-mail jest już używany przez inne konto.
  • FEDERATED_USER_ID_ALREADY_LINKED: Te dane logowania są już powiązane z innym konto użytkownika.

Możesz odłączyć dostawcę od bieżącego użytkownika, wysyłając żądanie HTTP Żądanie POST do punktu końcowego uwierzytelniania setAccountInfo.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
idToken ciąg znaków Token identyfikatora Firebase konta.
deleteProvider, Lista ciągów znaków Lista identyfikatorów dostawców do odłączenia, np. „google.com”, „hasło” itp.
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
Identyfikator lokalny ciąg znaków Identyfikator UID bieżącego użytkownika.
e-mail ciąg znaków Adres e-mail konta.
wyświetlanaNazwa ciąg znaków Wyświetlana nazwa konta.
adres URL zdjęcia ciąg znaków Adres URL zdjęcia na koncie.
hasz hasła ciąg znaków Wersja hasła z algorytmem hashującym.
Informacje o użytkowniku dostawcy Lista obiektów JSON Lista wszystkich połączonych obiektów dostawców, które zawierają „providerId” i „federatedId”.
adres e-mailZweryfikowany wartość logiczna Wskazuje, czy adres e-mail powiązany z kontem został zweryfikowany.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu.

Przykładowa odpowiedź

{
  "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"
}

Typowe kody błędów

  • INVALID_ID_TOKEN: dane logowania użytkownika straciły ważność. Użytkownik musi się ponownie zalogować.

Wyślij e-mail weryfikacyjny

Możesz wysłać e-maila weryfikacyjnego do bieżącego użytkownika, wysyłając kod HTTP Żądanie POST do punktu końcowego uwierzytelniania getOobConfirmationCode.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
Opcjonalne nagłówki
Nazwa właściwości Opis
Ustawienia języka X-Firebase Kod języka odpowiadający językowi użytkownika. Jeśli zaliczysz ten ruch, zostaną zlokalizowane wysłany do użytkownika e-mail weryfikacyjny.
Ładunek treści żądania
Nazwa właściwości Typ Opis
requestType ciąg znaków Typ kodu potwierdzenia do wysłania. Właściwa wartość to zawsze „VERIFY_EMAIL”.
idToken ciąg znaków Token identyfikatora Firebase użytkownika do zweryfikowania.
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
e-mail ciąg znaków Adres e-mail konta.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu.

Przykładowa odpowiedź

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

Typowe kody błędów

  • INVALID_ID_TOKEN: dane logowania użytkownika straciły ważność. Użytkownik musi się ponownie zalogować.
  • USER_NOT_FOUND: nie ma rekordu użytkownika odpowiadającego temu identyfikatorowi. Użytkownik może zostały usunięte.

Potwierdź weryfikację adresu e-mail

Możesz potwierdzić kod weryfikacyjny adresu e-mail, wysyłając wiadomość HTTP Żądanie POST do punktu końcowego uwierzytelniania setAccountInfo.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
Kod OobCode ciąg znaków Kod działania wysłany na adres e-mail użytkownika w celu weryfikacji adresu e-mail.
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
e-mail ciąg znaków Adres e-mail konta.
wyświetlanaNazwa ciąg znaków Wyświetlana nazwa konta.
adres URL zdjęcia ciąg znaków Adres URL zdjęcia na koncie.
hasz hasła ciąg znaków Hasz hasła.
Informacje o użytkowniku dostawcy Lista obiektów JSON Lista wszystkich połączonych obiektów dostawców, które zawierają „providerId” i „federatedId”.
adres e-mailZweryfikowany wartość logiczna Wskazuje, czy adres e-mail powiązany z kontem został zweryfikowany.

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu.

Przykładowa odpowiedź

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

Typowe kody błędów

  • expirationD_OOB_CODE: kod działania wygasł.
  • INVALID_OOB_CODE: kod działania jest nieprawidłowy. Zdarza się to, jeśli kod jest uszkodzony, wygasła lub została już wykorzystana.
  • USER_DISABLED: konto użytkownika zostało wyłączone przez administratora.
  • EMAIL_NOT_FOUND: nie ma rekordu użytkownika odpowiadającego temu identyfikatorowi. Użytkownik może zostały usunięte.

Usuń konto

Możesz usunąć bieżącego użytkownika, wysyłając kod HTTP Żądanie POST do punktu końcowego uwierzytelniania deleteAccount.

Metoda: POST

Content-Type: aplikacja/json

Punkt końcowy
https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]
Ładunek ciała żądania
Nazwa właściwości Typ Opis
idToken ciąg znaków Token identyfikatora Firebase użytkownika, który ma zostać usunięty.
Ładunek odpowiedzi
Nazwa właściwości Typ Opis

Przykładowe żądanie

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

Udane żądanie jest sygnalizowane przez HTTP 200 OK kodu stanu.

Typowe kody błędów

  • INVALID_ID_TOKEN:Dane logowania użytkownika straciły ważność. Użytkownik musi się ponownie zalogować.
  • USER_NOT_FOUND: nie ma rekordu użytkownika odpowiadającego temu identyfikatorowi. Użytkownik może zostały usunięte.

Emulator uwierzytelniania Firebase

Pakiet emulatorów lokalnych Firebase zawiera emulator uwierzytelniania, którego można używać do: lokalnych prototypów i testowania procesów uwierzytelniania. Emulator ujawnia następujący REST i punktów końcowych.

Wyczyść konta użytkowników

Usuń wszystkie konta w określonym projekcie, niezależnie od ich stanu.

Metoda: DELETE

Punkt końcowy

Pamiętaj, że portem domyślnym emulatora uwierzytelniania jest 9099. Sprawdź terminal dla rzeczywistego używanego portu.

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

Pobierz konfigurację emulatora

Pobierz konfigurację emulatora dla określonego projektu.

Metoda: GET

Punkt końcowy

Pamiętaj, że portem domyślnym emulatora uwierzytelniania jest 9099. Sprawdź terminal dla rzeczywistego używanego portu.

http://localhost:9099/emulator/v1/projects/{project-id}/config
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
logowanie Obiekt obiekt konfiguracji signIn zawierający pojedynczy klucz allowDuplicateEmails (wartość logiczna).

Konfiguracja emulatora poprawek

Zaktualizuj konfigurację emulatora dla określonego projektu.

Metoda: PATCH

Punkt końcowy

Pamiętaj, że portem domyślnym emulatora uwierzytelniania jest 9099. Sprawdź terminal dla rzeczywistego używanego portu.

Content-Type: aplikacja/json

http://localhost:9099/emulator/v1/projects/{project-id}/config
Ładunek ciała żądania
Nazwa właściwości Typ Opis
logowanie Obiekt Oczekiwany obiekt konfiguracji logowania z jednym kluczem: allowDuplicateEmails (wartość logiczna).
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
logowanie Obiekt Obiekt konfiguracji logowania po żądaniu z pojedynczym kluczem allowDuplicateEmails (wartość logiczna).

Pobieranie kodów uwierzytelniających spoza zakresu

Jeśli testowane przepływy uwierzytelniania zwykle generują kody spoza zakresu (np. kody weryfikacyjne e-maili, kody resetowania hasła), emulator przechowuje takie kody wewnętrznie do i ich zastosowania.

Metoda: GET

Punkt końcowy

Pamiętaj, że portem domyślnym emulatora uwierzytelniania jest 9099. Sprawdź terminal dla rzeczywistego używanego portu.

http://localhost:9099/emulator/v1/projects/{project-id}/oobCodes
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
Kody oobCode tablica Tablica obiektów ze szczegółami wszystkich oczekujących kodów potwierdzenia. Każdy obiekt zawiera email (ciąg znaków), oobCode (ciąg znaków), oobLink (ciąg znaków) i requestType (ciąg znaków)

Pobieranie kodów weryfikacyjnych SMS

Jeśli testujesz procesy uwierzytelniania przez telefon/SMS, emulator przechowuje takie kody wewnętrznie. do momentu ich wykorzystania.

Metoda: GET

Punkt końcowy

Pamiętaj, że portem domyślnym emulatora uwierzytelniania jest 9099. Sprawdź terminal dla rzeczywistego używanego portu.

http://localhost:9099/emulator/v1/projects/{project-id}/verificationCodes
Ładunek odpowiedzi
Nazwa właściwości Typ Opis
Kody weryfikacyjne tablica Tablica obiektów ze szczegółami wszystkich oczekujących kodów weryfikacyjnych. Każdy obiekt zawiera phoneNumber (ciąg znaków) i sessionCode (ciąg znaków).

Odpowiedź na błąd

Format odpowiedzi na błąd

Za każdym razem, gdy serwer backendu zwróci błąd dowolnego z powyższych interfejsów API, ma taki format.

Przykładowa odpowiedź

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

Kod błędu jest pobierany z pola komunikatu. Wszystkie powyższe kody błędów odnoszą się do zawartość pola wiadomości.