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