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 | 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