Mit dem Befehl
auth:import
werden Nutzerkonten in Firebase-Projekte importiert.Mit dem Befehl
auth:export
werden Nutzerkonten in JSON- und CSV-Dateien exportiert.
Passwort-Hash-Parameter
Um die Passwort-Hash-Parameter für Ihr Projekt zu ermitteln, rufen Sie in der Firebase Console den Bereich Authentifizierung > Nutzer auf und klicken Sie über der Liste der Nutzer auf das Dreipunkt-Menü. Es wird ein Dialogfeld mit einer Liste von Passwort-Hash-Parametern angezeigt, 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 und sollten daher mit Bedacht gespeichert werden. Die meisten Firebase-Projekte verwenden SCRYPT
, eine geänderte Version des Crypto-Hash-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 | |
---|---|
account_file | Die CSV- oder JSON-Datei mit den zu importierenden Nutzerkonten. Siehe Dateiformat. |
Hash-Algo | Der Algorithmus, der zum Hashen von Passwörtern in der Nutzerkontodatei verwendet wird. Erforderlich für den Import 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 zum Hashen von Passwörtern. Erforderlich für die Algorithmen SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 und HMAC_MD5 .
Dieses Argument muss als base64-codierter String formatiert werden. |
Salt-Trennzeichen | Salt-Trennzeichen, das bei der Überprüfung des Passworts an Salt angehängt wird. Optional für alle Algorithmen. Dieses Argument muss als base64-codierter String formatiert werden. |
rounds | 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-cost | Dieser Parameter stellt entweder die für den Algorithmus SCRYPT erforderlichen Arbeitsspeicherkosten dar ODER die für den Algorithmus STANDARD_SCRYPT erforderlichen CPU-/Arbeitsspeicherkosten.
|
Parallelisierung | Die Parallelisierung des Hash-Algorithmus. Erforderlich für den STANDARD_SCRYPT -Algorithmus. |
block-size | Die Blockgröße (normalerweise 8) des Hash-Algorithmus. Erforderlich für den STANDARD_SCRYPT -Algorithmus. |
dk-len | Die abgeleitete Schlüssellänge des Hash-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:export
firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Parameter | |
---|---|
account_file | Die CSV- oder JSON-Datei, in die exportiert werden soll. Siehe Dateiformat. |
file_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 ignoriert.
|
Dateiformat
Die Nutzerkontodatei kann als CSV oder JSON formatiert werden.
CSV
Eine CSV-Nutzerkontodatei hat folgendes Format:
Spaltennummer | Feldbeschreibung | Feldtyp | Kommentare |
---|---|---|---|
1 | UID | String | Erforderlich Diese ID muss für alle Konten in Ihren Firebase-Projekten eindeutig sein. Wenn Sie ein Konto mit einer bereits vorhandenen UID importieren, wird das Konto überschrieben. |
2 | String | Optional | |
3 | E-Mail-Adresse verifiziert | Boolesch | Optional |
4 | Passwort-Hash | String | Optional: Ein base64-codierter String. Für dieses Feld muss der Aufrufer die Rolle „Bearbeiter“ oder „Inhaber“ haben. |
5 | Passwort/Salt | String | Optional: Ein base64-codierter String. Für dieses Feld muss der Aufrufer die Rolle „Bearbeiter“ oder „Inhaber“ haben. |
6 | Name | String | Optional |
7 | Foto-URL | String | Optional |
8 | Google-ID | String | Optional |
9 | Google-E-Mail-Adresse | String | Optional |
10 | Google-Anzeigename | String | Optional |
11 | Google Fotos-URL | String | Optional |
12 | Facebook-ID | String | Optional |
13 | Facebook-E-Mail | String | Optional |
14 | Facebook-Anzeigename | String | Optional |
15 | Facebook-Foto-URL | String | Optional |
16 | Twitter-ID | String | Optional |
17 | Twitter-E-Mail | String | Optional |
18 | Anzeigename für Twitter | String | Optional |
19 | Twitter-Foto-URL | String | Optional |
20 | GitHub-ID | String | Optional |
21 | GitHub-E-Mail | String | Optional |
22 | GitHub-Anzeigename | String | Optional |
23 | GitHub-Foto-URL | String | Optional |
24 | Erstellungszeit des Nutzers | Lang | Optionaler Epochen-Unixzeitstempel in Millisekunden. |
25 | Zeitpunkt der letzten Anmeldung | Lang | Optionaler Epochen-Unixzeitstempel in Millisekunden. |
26 | Telefonnummer | String | Optional |
Wenn Sie einen optionalen Wert nicht angeben, muss trotzdem ein leeres Feld für den Wert eingefügt werden. Ein leeres Feld kann eine beliebige Anzahl von Leerzeichen enthalten.
Die folgende Zeile stellt beispielsweise ein Nutzerkonto 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-Nutzerkontodatei hat folgendes 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