auth:import i auth:export

  • Polecenie auth:import importuje konta użytkowników do projektów Firebase.

  • Polecenie auth:export eksportuje konta użytkowników do plików JSON i CSV.

Parametry skrótu hasła

Aby określić parametry skrótu hasła używane w projekcie, przejdź do sekcji Uwierzytelnianie > Użytkownicy w konsoli Firebase i kliknij ikonę z 3 kropkami nad listą użytkowników. Pojawi się okno z listą parametrów skrótu hasła, których można używać z poleceniami auth:import i auth:export:

hash_config {
  algorithm: SCRYPT,
  base64_signer_key: <...sensitive...>,
  base64_salt_separator: <...sensitive...>,
  rounds: 8,
  mem_cost: 14,
}

Te wartości są poufne, należy je więc przechowywać ostrożnie. Większość projektów Firebase używa SCRYPTzmodyfikowanej wersji algorytmu szyfrowania szyfrowania, który jest domyślny w nowych projektach.

auth:import

firebase auth:import ACCOUNT_FILE    \
    --hash-algo=HASH_ALGORITHM         \
    --hash-key=KEY                     \
    --salt-separator=SALT_SEPARATOR    \
    --rounds=ROUNDS                    \
    --mem-cost=MEM_COST                \
    --parallelization=PARALLELIZATION  \
    --block-size=BLOCK_SIZE            \
    --dk-len=DK_LEN                    \
    --hash-input-order=HASH_INPUT_ORDER
Parametry
account_file Plik CSV lub JSON zawierający konta użytkowników do zaimportowania. Zobacz Format pliku.
hasz algo Algorytm używany do haszowania haseł w pliku kont użytkowników.
Wymagane do importowania kont z polami hasła. Jedna z tych wartości: BCRYPT, SCRYPT, STANDARD_SCRYPT, HMAC_SHA512, HMAC_SHA256, HMAC_SHA1, HMAC_MD5, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1, PBKDF2_SHA256.
klucz skrótu Klucz używany do haszowania haseł.
Wymagany w przypadku algorytmów SCRYPT, HMAC_SHA512, HMAC_SHA256, HMAC_SHA1 i HMAC_MD5. Ten argument musi być sformatowany pod postacią ciągu zakodowanego w formacie base64.
separator soli Separator soli, który zostanie dołączony do ciągu zaburzającego podczas weryfikacji hasła.
Opcjonalny w przypadku wszystkich algorytmów. Ten argument musi być sformatowany jako ciąg znaków zakodowany w formacie base64.
rounds Liczba powtórzeń haszowania haseł.
Wymagany w przypadku algorytmów SCRYPT, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1 i PBKDF2_SHA256.
mem-cost Ten parametr reprezentuje koszt pamięci wymagany przez algorytm SCRYPT LUB koszt procesora/pamięci wymagany przez algorytm STANDARD_SCRYPT.
równolegle Równoległe działanie algorytmu szyfrowania.
Wymagany przez algorytm STANDARD_SCRYPT.
block-size Rozmiar bloku (zwykle wynosi 8) algorytmu szyfrowania.
Wymagany przez algorytm STANDARD_SCRYPT.
dk-len Długość klucza generatywnego algorytmu szyfrowania.
Wymagany przez algorytm STANDARD_SCRYPT.
kolejność_wejściówych haszowania Porządek haseł i ciągów zaburzających.
Możliwe wartości to SALT_FIRST i PASSWORD_FIRST. Ta flaga dotyczy SHA512, SHA256, SHA1, MD5, HMAC_SHA512, HMAC_SHA256, HMAC_SHA1 i HMAC_MD5.

auth:export

firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Parametry
account_file Plik CSV lub JSON, do którego ma nastąpić eksport. Zobacz Format pliku.
file_format Opcjonalne. Format pliku do wyeksportowania: CSV lub JSON.
Jeśli nazwa pliku podana w parametrze account_file kończy się na .csv lub .json, ten format jest używany, a parametr jest ignorowany.

Format pliku

Plik konta użytkownika może być sformatowany w formacie CSV lub JSON.

CSV,

Plik CSV z kontem użytkownika ma taki format:

Numer kolumny Opis pola Typ pola Komentarze
1 Użytkownik (UID) Ciąg znaków Wymagany
Ten identyfikator powinien być unikalny wśród wszystkich kont w projektach Firebase. Jeśli zaimportujesz konto z identyfikatorem UID, który już istnieje, zostanie ono zastąpione.
2 Wyślij e-mailem Ciąg znaków Opcjonalnie
3 Adres e-mail zweryfikowany Wartość logiczna Opcjonalnie
4 Hasz hasła Ciąg znaków Opcjonalny
Ciąg znaków zakodowany w standardzie base64. To pole wymaga, aby rozmówca miał rolę Edytujący lub Właściciel.
5 Sól do haseł Ciąg znaków Opcjonalny
Ciąg znaków zakodowany w standardzie base64. To pole wymaga, aby rozmówca miał rolę Edytujący lub Właściciel.
6 Nazwa Ciąg znaków Opcjonalnie
7 Adres URL zdjęcia Ciąg znaków Opcjonalnie
8 Identyfikator Google Ciąg znaków Opcjonalnie
9 Adres e-mail Google Ciąg znaków Opcjonalnie
10 Wyświetlana nazwa Google Ciąg znaków Opcjonalnie
11 URL Zdjęć Google Ciąg znaków Opcjonalnie
12 Identyfikator Facebooka Ciąg znaków Opcjonalnie
13 Adres e-mail na Facebooku Ciąg znaków Opcjonalnie
14 Nazwa wyświetlana na Facebooku Ciąg znaków Opcjonalnie
15 URL zdjęcia na Facebooku Ciąg znaków Opcjonalnie
16 Identyfikator Twittera Ciąg znaków Opcjonalnie
17 Adres e-mail na Twitterze Ciąg znaków Opcjonalnie
18 Nazwa wyświetlana na Twitterze Ciąg znaków Opcjonalnie
19 URL zdjęcia na Twitterze Ciąg znaków Opcjonalnie
20 Identyfikator GitHuba Ciąg znaków Opcjonalnie
21 Adres e-mail GitHub Ciąg znaków Opcjonalnie
22 Wyświetlana nazwa GitHuba Ciąg znaków Opcjonalnie
23 Adres URL zdjęcia w GitHubie Ciąg znaków Opcjonalnie
24 Czas utworzenia użytkownika Długa liczba całkowita Opcjonalna
Sygnatura czasowa systemu uniksowego w milisekundach.
25 Godzina ostatniego logowania Długa liczba całkowita Opcjonalna
Sygnatura czasowa systemu uniksowego w milisekundach.
26 Numer telefonu Ciąg znaków Opcjonalnie

Jeśli pozostawisz nieokreśloną wartość, pamiętaj o podaniu pustego pola. Puste pole może zawierać dowolną liczbę spacji.

Na przykład ten wiersz przedstawia konto użytkownika:

111, test@test.org, false, Jlf7onfLbzqPNFP/1pqhx6fQF/w=, c2FsdC0x, Test User, http://photo.com/123, , , , , 123, test@test.org, Test FB User, http://photo.com/456, , , , , , , , , 1486324027000, 1486324027000

JSON

Plik JSON konta użytkownika ma taki format:

{
  "users": [
    {
      "localId": UID,
      "email": EMAIL_ADDRESS
      "emailVerified": EMAIL_VERIFIED,
      "passwordHash": BASE64_ENCODED_PASSWORD_HASH,
      "salt": BASE64_ENCODED_PASSWORD_SALT,
      "displayName": NAME,
      "photoUrl": PHOTO_URL,
      "createdAt": CREATED_AT_IN_MILLIS,
      "lastSignedInAt": LAST_SIGNEDIN_AT_IN_MILLIS,
      "phoneNumber": PHONE_NUMBER
      "providerUserInfo": [
        {
          "providerId": PROVIDER_ID,
          "rawId": PROVIDER_UID,
          "email":  PROVIDER_EMAIL,
          "displayName": PROVIDER_NAME,
          "photoUrl": PROVIDER_PHOTO_URL
        },
        ...
      ]
    },
    ...
  ]
}

Zastąp PROVIDER_ID jedną z tych wartości:

  • google.com
  • facebook.com
  • github.com
  • twitter.com