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 JSON file CSV.

Parametri di hash della password

Per determinare i parametri di hashing della password utilizzati per il progetto, vai alla sezione Autenticazione > Utenti della console Firebase e fai clic sull'icona con tre puntini sopra l'elenco di utenti. Verrà visualizzata una finestra di dialogo con un elenco di parametri di hash della password che puoi utilizzare con 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.

auth: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 contenente gli account utente da importare. Consulta Formato file.
hash-algo L'algoritmo utilizzato per eseguire l'hashing delle password nel file dell'account utente.
Obbligatorio per importare account con campi per la 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.
hash-key Chiave utilizzata per eseguire l'hashing delle password.
Obbligatorio per SCRYPT, HMAC_SHA512, HMAC_SHA256 HMAC_SHA1 e HMAC_MD5 algoritmi. Questo argomento deve essere formattato come stringa codificata in base64.
separatore di sale Separatore di salt che verrà aggiunto al salt durante la verifica della password.
Facoltativo per tutti gli algoritmi. Questo argomento deve essere formattato come con codifica base64.
turni 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'attributo l'algoritmo SCRYPT O il costo di CPU/memoria richiesto per l'attributo Algoritmo STANDARD_SCRYPT.
caricamento in contemporanea Il parallelizzazione dell'algoritmo di hashing.
Obbligatorio per l'algoritmo STANDARD_SCRYPT.
a blocchi 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 di password e salt.
I valori possibili sono SALT_FIRST e PASSWORD_FIRST. Questo flag si applica per 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. Vedi File standard.
formato_file Facoltativo. Il formato file da esportare: CSV o JSON.
Se il nome del file specificato nel parametro account_file termina con .csv o .json, questo formato viene utilizzato e questa viene ignorato.

Formato file

Il file dell'account utente può essere formattato come 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 tuoi progetti Firebase. Se importi un account con un UID già esistente, l'account verrà sovrascritto.
2 Email Stringa Facoltativo
3 Indirizzo email verificato Booleano Facoltativo
4 Hash della password Stringa Facoltativo
Una stringa codificata in base64. Questo campo richiede che chi chiama disponga del ruolo Editor o Proprietario.
5 Sale password Stringa Facoltativo
Una stringa codificata in base64. Questo campo richiede che il chiamante abbia il ruolo Editor o Proprietario.
6 Nome Stringa Facoltativo
7 URL foto Stringa Facoltativo
8 ID Google Stringa Facoltativo
9 Email di Google Stringa Facoltativo
10 Nome visualizzato di Google Stringa Facoltativo
11 URL di Google Foto Stringa Facoltativo
12 ID Facebook Stringa Facoltativo
13 Email di Facebook Stringa Facoltativo
14 Nome visualizzato 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 di creazione utente Lungo Facoltativo
Timestamp Unix dell'epoca in millisecondi.
25 Orario 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 valore campo vuoto per il valore. Un campo vuoto può essere qualsiasi numero di spazi caratteri.

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