auth:import und auth:export

  • Der Befehl auth:import importiert Benutzerkonten in Firebase-Projekte.

  • Der Befehl auth:export exportiert Benutzerkonten in JSON- und CSV-Dateien.

Passwort-Hash-Parameter

Um die für Ihr Projekt verwendeten Passwort-Hash-Parameter zu ermitteln, navigieren Sie zum Abschnitt „Authentifizierung “ > „Benutzer“ der Firebase-Konsole und klicken Sie auf das Symbol mit den drei Punkten über der Benutzerliste. Sie sehen ein Dialogfeld mit einer Liste von Passwort-Hash-Parametern, die Sie mit den Befehlen auth:import und auth:export verwenden können:

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

Diese Werte sind sensibel. Bewahren Sie sie daher sorgfältig auf. Die meisten Firebase-Projekte verwenden SCRYPT , eine modifizierte Version des Scrypt-Hashing-Algorithmus , der die Standardeinstellung für neue Projekte ist.

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
Parameter
Kontodatei Die CSV- oder JSON-Datei, die die zu importierenden Benutzerkonten enthält. Siehe Dateiformat .
Hash-Algorithmus Der Algorithmus, der zum Hashen von Passwörtern in der Benutzerkontodatei verwendet wird.
Erforderlich zum Importieren von Konten mit Passwortfeldern. Einer der folgenden Werte: BCRYPT , SCRYPT , STANDARD_SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 , HMAC_MD5 , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 , PBKDF2_SHA256 .
Hash-Schlüssel Schlüssel, der zum Hashen von Passwörtern verwendet wird.
Erforderlich für die Algorithmen SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 und HMAC_MD5 . Dieses Argument muss als Base64-codierte Zeichenfolge formatiert sein.
Salzabscheider Salt-Trennzeichen, das bei der Passwortüberprüfung an Salt angehängt wird.
Optional für alle Algorithmen. Dieses Argument muss als Base64-codierte Zeichenfolge formatiert sein.
Runden Die Anzahl der Runden, die zum Hashen von Passwörtern verwendet werden.
Erforderlich für die Algorithmen SCRYPT , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 und PBKDF2_SHA256 .
Mem-Kosten Dieser Parameter repräsentiert entweder die für den SCRYPT Algorithmus erforderlichen Speicherkosten ODER die für den STANDARD_SCRYPT Algorithmus erforderlichen CPU-/Speicherkosten.
Parallelisierung Die Parallelisierung des Hashing-Algorithmus.
Erforderlich für den STANDARD_SCRYPT -Algorithmus.
Block Größe Die Blockgröße (normalerweise 8) des Hashing-Algorithmus.
Erforderlich für den STANDARD_SCRYPT -Algorithmus.
dk-len Die abgeleitete Schlüssellänge des Hashing-Algorithmus.
Erforderlich für den STANDARD_SCRYPT -Algorithmus.
Hash-Eingabereihenfolge Die Reihenfolge von Passwort und Salt.
Mögliche Werte sind SALT_FIRST und PASSWORD_FIRST . Dieses Flag gilt für SHA512 , SHA256 , SHA1 , MD5 , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 und HMAC_MD5 .

auth:exportieren

firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Parameter
Kontodatei Die CSV- oder JSON-Datei, in die exportiert werden soll. Siehe Dateiformat .
Datei Format Optional. Das zu exportierende Dateiformat: entweder CSV oder JSON.
Wenn der im Parameter account_file angegebene Dateiname mit .csv oder .json endet, wird dieses Format verwendet und dieser Parameter wird ignoriert.

Datei Format

Die Benutzerkontodatei kann als CSV oder JSON formatiert werden.

CSV

Eine CSV-Benutzerkontodatei hat das folgende Format:

Spaltennummer Feld Beschreibung Feldtyp Kommentare
1 UID Zeichenfolge Erforderlich
Diese ID sollte unter allen Konten in Ihren Firebase-Projekten eindeutig sein. Wenn Sie ein Konto mit einer bereits vorhandenen UID importieren, wird das Konto überschrieben.
2 Email Zeichenfolge Optional
3 Email überprüft Boolescher Wert Optional
4 Passwort-Hash Zeichenfolge Optional
Eine Base64-codierte Zeichenfolge. Für dieses Feld muss der Anrufer über die Rolle „Editor“ oder „Besitzer“ verfügen.
5 Passwort Salt Zeichenfolge Optional
Eine Base64-codierte Zeichenfolge. Für dieses Feld muss der Anrufer über die Rolle „Editor“ oder „Besitzer“ verfügen.
6 Name Zeichenfolge Optional
7 Foto-URL Zeichenfolge Optional
8 Google-ID Zeichenfolge Optional
9 Google-E-Mail Zeichenfolge Optional
10 Google-Anzeigename Zeichenfolge Optional
11 Google Foto-URL Zeichenfolge Optional
12 Facebook id Zeichenfolge Optional
13 Facebook-E-Mail Zeichenfolge Optional
14 Facebook-Anzeigename Zeichenfolge Optional
15 Facebook-Foto-URL Zeichenfolge Optional
16 Twitter-ID Zeichenfolge Optional
17 Twitter-E-Mail Zeichenfolge Optional
18 Twitter-Anzeigename Zeichenfolge Optional
19 Twitter-Foto-URL Zeichenfolge Optional
20 GitHub-ID Zeichenfolge Optional
21 GitHub-E-Mail Zeichenfolge Optional
22 GitHub-Anzeigename Zeichenfolge Optional
23 GitHub-Foto-URL Zeichenfolge Optional
24 Benutzererstellungszeit Lang Optional
Epochen-Unix-Zeitstempel in Millisekunden.
25 Letzte Anmeldezeit Lang Optional
Epochen-Unix-Zeitstempel in Millisekunden.
26 Telefonnummer Zeichenfolge Optional

Wenn Sie einen optionalen Wert nicht angeben, stellen Sie sicher, dass Sie dennoch ein leeres Feld für den Wert einfügen. Ein leeres Feld kann eine beliebige Anzahl von Leerzeichen enthalten.

Die folgende Zeile stellt beispielsweise ein Benutzerkonto dar:

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

Eine JSON-Benutzerkontodatei hat das folgende 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
        },
        ...
      ]
    },
    ...
  ]
}

Ersetzen Sie PROVIDER_ID durch einen der folgenden Werte:

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