La commande
auth:import
importe les comptes utilisateur dans les projets Firebase.La commande
auth:export
exporte les comptes utilisateur vers des fichiers JSON et CSV.
Paramètres de hachage du mot de passe
Pour déterminer les paramètres de hachage du mot de passe utilisés pour votre projet, accédez à la section Authentication > Users (Authentification > Utilisateurs) de la console Firebase, puis cliquez sur l'icône à trois points au-dessus de la liste des utilisateurs. Une boîte de dialogue contenant la liste des paramètres de hachage des mots de passe que vous pouvez utiliser avec les commandes auth:import
et auth:export
s'affiche:
hash_config {
algorithm: SCRYPT,
base64_signer_key: <...sensitive...>,
base64_salt_separator: <...sensitive...>,
rounds: 8,
mem_cost: 14,
}
Ces valeurs étant sensibles, veillez à les stocker avec précaution. La plupart des projets Firebase utilisent SCRYPT
, une version modifiée de l'algorithme de hachage de chiffrement, qui est la valeur par défaut pour les nouveaux projets.
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
Paramètres | |
---|---|
account_file | Fichier CSV ou JSON contenant les comptes d'utilisateurs à importer. Consultez la section Format de fichier. |
algorithme de hachage | Algorithme utilisé pour hacher les mots de passe dans le fichier des comptes utilisateur. Obligatoire pour importer des comptes avec des champs de mot de passe. L'une des valeurs suivantes: BCRYPT , SCRYPT , STANDARD_SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 , HMAC_MD5 , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 , PBKDF2_SHA256 . |
clé de hachage | Clé utilisée pour hacher les mots de passe. Obligatoire pour les algorithmes SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 et HMAC_MD5 .
Cet argument doit prendre la forme d'une chaîne encodée en base64. |
Séparateur de sel | Séparateur de sel qui sera ajouté au salage lors de la vérification du mot de passe. Facultatif pour tous les algorithmes. Cet argument doit prendre la forme d'une chaîne encodée en base64. |
rounds | Nombre de séries utilisées pour hacher les mots de passe. Obligatoire pour les algorithmes SCRYPT , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 et PBKDF2_SHA256 . |
mem-cost | Ce paramètre représente le coût de mémoire requis pour l'algorithme SCRYPT OU le coût de processeur/mémoire requis pour l'algorithme STANDARD_SCRYPT .
|
parallélisation | Parallélisation de l'algorithme de hachage. Obligatoire pour l'algorithme STANDARD_SCRYPT . |
block-size | La taille du bloc de l'algorithme de hachage (en général, 8). Obligatoire pour l'algorithme STANDARD_SCRYPT . |
dk-len | Longueur de la clé dérivée de l'algorithme de hachage. Obligatoire pour l'algorithme STANDARD_SCRYPT . |
ordre-entrée-hachage | L'ordre du mot de passe et du salage. Les valeurs possibles sont SALT_FIRST et PASSWORD_FIRST . Cette option s'applique à SHA512 , SHA256 , SHA1 , MD5 , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 et HMAC_MD5 . |
auth:exportation
firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Paramètres | |
---|---|
account_file | Le fichier CSV ou JSON vers lequel exporter. Consultez la section Format de fichier. |
file_format | Facultatif. Format de fichier à exporter: CSV ou JSON. Si le nom de fichier spécifié dans le paramètre account_file se termine par .csv ou .json , ce format est utilisé et ce paramètre est ignoré.
|
Format de fichier
Le fichier des comptes utilisateur peut être au format CSV ou JSON.
CSV
Un fichier de compte d'utilisateur CSV a le format suivant:
Numéro de colonne | Description du champ | Type de champ | Commentaires |
---|---|---|---|
1 | UID | Chaîne | Obligatoire Cet identifiant doit être unique parmi tous les comptes de vos projets Firebase. Si vous importez un compte avec un UID existant, le compte sera écrasé. |
2 | Adresse e-mail | Chaîne | Facultatif |
3 | Adresse e-mail vérifiée | Booléen | Facultatif |
4 | Hachage de mot de passe | Chaîne | Facultatif Chaîne encodée en base64. Ce champ nécessite que l'appelant dispose du rôle Éditeur ou Propriétaire. |
5 | Salage de mot de passe | Chaîne | Facultatif Chaîne encodée en base64. Ce champ nécessite que l'appelant dispose du rôle Éditeur ou Propriétaire. |
6 | Nom | Chaîne | Facultatif |
7 | URL de photo | Chaîne | Facultatif |
8 | ID Google | Chaîne | Facultatif |
9 | Adresse e-mail Google | Chaîne | Facultatif |
10 | Nom à afficher Google | Chaîne | Facultatif |
11 | URL Google Photos | Chaîne | Facultatif |
12 | ID Facebook | Chaîne | Facultatif |
13 | Adresse e-mail Facebook | Chaîne | Facultatif |
14 | Nom à afficher Facebook | Chaîne | Facultatif |
15 | URL de la photo Facebook | Chaîne | Facultatif |
16 | ID Twitter | Chaîne | Facultatif |
17 | Adresse e-mail Twitter | Chaîne | Facultatif |
18 | Nom à afficher sur Twitter | Chaîne | Facultatif |
19 | URL de la photo Twitter | Chaîne | Facultatif |
20 | ID GitHub | Chaîne | Facultatif |
21 | Adresse e-mail GitHub | Chaîne | Facultatif |
22 | Nom à afficher GitHub | Chaîne | Facultatif |
23 | URL de la photo GitHub | Chaîne | Facultatif |
24 | Heure de création de l'utilisateur | Long | Facultatif Code temporel Unix de l'epoch en millisecondes. |
25 | Heure de la dernière connexion | Long | Facultatif Code temporel Unix de l'epoch en millisecondes. |
26 | Numéro de téléphone | Chaîne | Facultatif |
Si vous ne spécifiez pas de valeur facultative, veillez à toujours inclure un champ vide pour la valeur. Un champ vide peut comporter n'importe quel nombre de caractères d'espacement.
Par exemple, la ligne suivante représente un compte utilisateur:
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 fichier de compte utilisateur JSON a le format suivant:
{ "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 }, ... ] }, ... ] }
Remplacez PROVIDER_ID par l'une des valeurs suivantes :
google.com
facebook.com
github.com
twitter.com