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