Mit dem Befehl
auth:import
werden Nutzerkonten in Firebase importiert Projekten.Mit dem Befehl
auth:export
werden Nutzerkonten in das JSON- und CSV-Dateien.
Passwort-Hash-Parameter
Wenn Sie die für Ihr Projekt verwendeten Passwort-Hash-Parameter ermitteln möchten, gehen Sie zu
das Feld Authentication > (Authentifizierung) > Nutzer in der Firebase-Konsole und klicken Sie auf
auf das Dreipunkt-Menü über der Liste. Ein Dialogfeld mit einer Liste wird angezeigt.
der Passwort-Hash-Parameter, die Sie mit auth:import
und auth:export
verwenden können
Befehle:
hash_config {
algorithm: SCRYPT,
base64_signer_key: <...sensitive...>,
base64_salt_separator: <...sensitive...>,
rounds: 8,
mem_cost: 14,
}
Da diese Werte sensibel sind, sollten Sie sie mit Sorgfalt speichern. In den meisten Firebase-Projekten
SCRYPT
, eine geänderte Version des Verschlüsselungs-Hash-Algorithmus,
Dies ist die Standardeinstellung für neue Projekte.
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 mit den zu importierenden Nutzerkonten. Siehe Dateiformat. |
Hash-Algo | Der Algorithmus, mit dem Passwörter in der Nutzerkontodatei gehasht werden. 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 SCRYPT , HMAC_SHA512 , HMAC_SHA256
HMAC_SHA1 - und HMAC_MD5 -Algorithmen.
Dieses Argument muss als Base64-codierte
. |
salt-separator | Salt-Trennzeichen, das bei der Verifizierung des Passworts an Salt angehängt wird. Optional für alle Algorithmen. Dieses Argument muss folgendermaßen formatiert sein: Base64-codierter String. |
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-cost | Dieser Parameter steht entweder für die für den
SCRYPT -Algorithmus ODER die CPU-/Arbeitsspeicherkosten, die für den
STANDARD_SCRYPT -Algorithmus.
|
Parallelisierung | Die Parallelisierung des Hash-Algorithmus. Erforderlich für den STANDARD_SCRYPT -Algorithmus. |
Blockgröße | 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 | |
---|---|
Kontodatei | Die CSV- oder JSON-Datei, in die exportiert werden soll. Siehe Datei Format. |
Dateiformat | Optional. Das zu exportierende Dateiformat: entweder CSV oder JSON. Wenn der im Parameter account_file angegebene Dateiname endet
mit .csv oder .json , wird dieses Format verwendet und
wird ignoriert.
|
Dateiformat
Die Datei des Nutzerkontos 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 bestätigt | 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-Foto-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-Adresse | String | Optional |
18 | Twitter-Anzeigename | String | Optional |
19 | Twitter-Foto-URL | String | Optional |
20 | GitHub-ID | String | Optional |
21 | GitHub-E-Mail-Adresse | String | Optional |
22 | GitHub-Anzeigename | String | Optional |
23 | GitHub-Foto-URL | String | Optional |
24 | Erstellungszeitpunkt des Nutzers | Lang | Optional Epochen-Unix-Zeitstempel in Millisekunden. |
25 | Zeitpunkt der letzten Anmeldung | Lang | Optional Unix-Epoch-Zeitstempel in Millisekunden. |
26 | Telefonnummer | String | Optional |
Wenn Sie einen optionalen Wert nicht angeben, muss das Feld für den Wert trotzdem leer sein. Ein leeres Feld kann eine beliebige Anzahl von Leerzeichen enthalten Zeichen.
Die folgende Zeile steht beispielsweise für ein Nutzerkonto:
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