auth:import e auth:export

  • Il comando auth:import importa gli account utente nei progetti Firebase.

  • Il comando auth:export esporta gli account utente in file JSON e CSV.

Parametri hash della password

Per determinare i parametri dell'hash della password utilizzati per il tuo progetto, vai alla sezione Autenticazione > Utenti della console Firebase e fai clic sull'icona dei tre punti sopra l'elenco degli utenti. Verrà visualizzata una finestra di dialogo con un elenco di parametri hash della password che puoi utilizzare con i comandi auth:import e auth:export :

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

Questi valori sono sensibili, quindi conservali con cura. La maggior parte dei progetti Firebase utilizza SCRYPT , una versione modificata dell'algoritmo di hashing scrypt , che è l'impostazione predefinita per i nuovi progetti.

autenticazione: importa

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
Parametri
file_account Il file CSV o JSON che contiene gli account utente da importare. Vedere Formato file .
hash-algo L'algoritmo utilizzato per eseguire l'hashing delle password nel file dell'account utente.
Necessario per importare account con campi password. Uno dei seguenti valori: BCRYPT , SCRYPT , STANDARD_SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 , HMAC_MD5 , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 , PBKDF2_SHA256 .
tasto cancelletto Chiave utilizzata per eseguire l'hashing delle password.
Obbligatorio per gli algoritmi SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 e HMAC_MD5 . Questo argomento deve essere formattato come una stringa con codifica base64 .
separatore di sale Separatore di sale che verrà aggiunto al sale durante la verifica della password.
Facoltativo per tutti gli algoritmi. Questo argomento deve essere formattato come una stringa con codifica base64 .
giri Il numero di cicli utilizzati per eseguire l'hashing delle password.
Richiesto per gli algoritmi SCRYPT , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 e PBKDF2_SHA256 .
costo mem Questo parametro rappresenta il costo della memoria richiesto per l'algoritmo SCRYPT OPPURE il costo della CPU/memoria richiesto per l'algoritmo STANDARD_SCRYPT .
parallelizzazione La parallelizzazione dell'algoritmo di hashing.
Obbligatorio per l'algoritmo STANDARD_SCRYPT .
misura del blocco La dimensione del blocco (normalmente è 8) dell'algoritmo di hashing.
Obbligatorio per l'algoritmo STANDARD_SCRYPT .
dk-len La lunghezza della chiave derivata dell'algoritmo di hashing.
Obbligatorio per l'algoritmo STANDARD_SCRYPT .
ordine-di-input-hash L'ordine della password e del sale.
I valori possibili sono SALT_FIRST e PASSWORD_FIRST . Questo flag si applica a SHA512 , SHA256 , SHA1 , MD5 , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 e HMAC_MD5 .

autenticazione:esportazione

firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Parametri
file_account Il file CSV o JSON in cui esportare. Vedere Formato file .
formato del file Opzionale. Il formato del file da esportare: CSV o JSON.
Se il nome file specificato nel parametro account_file termina con .csv o .json , viene utilizzato quel formato e questo parametro viene ignorato.

Formato del file

Il file dell'account utente può essere formattato come CSV o JSON .

CSV

Un file dell'account utente CSV ha il seguente formato:

Numero di colonna Descrizione del campo Tipo di campo Commenti
1 UID Corda Necessario
Questo ID deve essere univoco tra tutti gli account nei tuoi progetti Firebase. Se importi un account con un UID già esistente, l'account verrà sovrascritto.
2 E-mail Corda Opzionale
3 email verificata Booleano Opzionale
4 Hash della password Corda Opzionale
Una stringa codificata base64. Questo campo richiede che il chiamante abbia il ruolo di Editor o Proprietario .
5 Parola d'ordine Sale Corda Opzionale
Una stringa codificata base64. Questo campo richiede che il chiamante abbia il ruolo di Editor o Proprietario .
6 Nome Corda Opzionale
7 URL della foto Corda Opzionale
8 ID Google Corda Opzionale
9 E-mail di Google Corda Opzionale
10 Nome visualizzato di Google Corda Opzionale
11 URL di Google Foto Corda Opzionale
12 Facebook ID Corda Opzionale
13 E-mail di Facebook Corda Opzionale
14 Nome visualizzato di Facebook Corda Opzionale
15 URL della foto di Facebook Corda Opzionale
16 ID Twitter Corda Opzionale
17 E-mail di Twitter Corda Opzionale
18 Nome visualizzato di Twitter Corda Opzionale
19 URL della foto di Twitter Corda Opzionale
20 ID GitHub Corda Opzionale
21 E-mail GitHub Corda Opzionale
22 Nome visualizzato GitHub Corda Opzionale
23 URL della foto di GitHub Corda Opzionale
24 Orario di creazione dell'utente Lungo Opzionale
Epoca Unix Timestamp in millisecondi.
25 Ora dell'ultimo accesso Lungo Opzionale
Epoca Unix Timestamp in millisecondi.
26 Numero di telefono Corda Opzionale

Se lasci un valore facoltativo non specificato, assicurati di includere comunque un campo vuoto per il valore. Un campo vuoto può contenere un numero qualsiasi di caratteri spaziali.

Ad esempio, la riga seguente rappresenta un account utente:

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

Un file di account utente JSON ha il seguente formato:

{
  "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
        },
        ...
      ]
    },
    ...
  ]
}

Sostituisci PROVIDER_ID con uno dei seguenti valori:

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