auth:import e auth:export

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

  • Il comando auth:export consente di esportare gli account utente in file JSON e CSV.

Parametri di hash della password

Per determinare i parametri di hash della password utilizzati per il tuo progetto, vai alla sezione Autenticazione > Utenti della Console Firebase e fai clic sull'icona con tre puntini sopra l'elenco degli utenti. Viene visualizzata una finestra di dialogo con un elenco di parametri di hash delle 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 della crittografia, impostazione predefinita per i nuovi progetti.

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
Parametri
account_file Il file CSV o JSON che contiene gli account utente da importare. Consulta la sezione Formato file.
hash-algo L'algoritmo utilizzato per eseguire l'hashing delle password nel file dell'account utente.
Obbligatorio per importare gli account con campi relativi alle 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.
chiave hash Chiave utilizzata per 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 codificata in 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.
rounds Il numero di round utilizzati per eseguire l'hashing delle password.
Obbligatorio per gli algoritmi SCRYPT, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1 e PBKDF2_SHA256.
mem-cost Questo parametro rappresenta il costo della memoria richiesto per l'algoritmo SCRYPT OPPURE il costo di CPU/memoria richiesto per l'algoritmo STANDARD_SCRYPT.
caricamento in contemporanea Il caricamento in contemporanea dell'algoritmo di hashing.
Obbligatorio per l'algoritmo STANDARD_SCRYPT.
block-size La dimensione del blocco (di solito è 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-input-hash L'ordine della password e del salt.
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.

auth:esportazione

firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Parametri
account_file Il file CSV o JSON in cui eseguire l'esportazione. Consulta la sezione Formato file.
file_format Facoltativo. Il formato 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 il parametro viene ignorato.

Formato file

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

CSV

Un file di account utente CSV ha il seguente formato:

Numero colonna Descrizione del campo Tipo di campo Commenti
1 UID Stringa Obbligatorio
Questo ID deve essere univoco tra tutti gli account nei progetti Firebase. Se importi un account con un UID già esistente, l'account verrà sovrascritto.
2 Email Stringa Facoltativo
3 Indirizzo e-mail verificato Booleano Facoltativo
4 Hash della password Stringa (Facoltativo)
Una stringa con codifica Base64. Questo campo richiede che il chiamante abbia il ruolo Editor o Proprietario.
5 Sale password Stringa (Facoltativo)
Una stringa con codifica Base64. Questo campo richiede che il chiamante abbia il ruolo Editor o Proprietario.
6 Nome Stringa Facoltativo
7 URL della foto Stringa Facoltativo
8 ID Google Stringa Facoltativo
9 Email Google Stringa Facoltativo
10 Nome visualizzato di Google Stringa Facoltativo
11 URL di Google Foto Stringa Facoltativo
12 ID Facebook Stringa Facoltativo
13 Email Facebook Stringa Facoltativo
14 Nome visualizzato di Facebook Stringa Facoltativo
15 URL foto Facebook Stringa Facoltativo
16 ID Twitter Stringa Facoltativo
17 Email di Twitter Stringa Facoltativo
18 Nome visualizzato Twitter Stringa Facoltativo
19 URL foto Twitter Stringa Facoltativo
20 ID GitHub Stringa Facoltativo
21 Email GitHub Stringa Facoltativo
22 Nome visualizzato GitHub Stringa Facoltativo
23 URL foto GitHub Stringa Facoltativo
24 Ora creazione utente Lungo Facoltativo
Timestamp Unix dell'epoca in millisecondi.
25 Data/ora ultimo accesso Lungo Facoltativo
Timestamp Unix dell'epoca in millisecondi.
26 Numero di telefono Stringa Facoltativo

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

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