La commande
auth:import
importe les comptes d'utilisateurs dans les projets Firebase.La commande
auth:export
exporte les comptes d'utilisateurs vers des fichiers JSON et CSV.
Paramètres de hachage du mot de passe
Pour déterminer les paramètres de hachage de mot de passe utilisés pour votre projet, accédez à la section Authentification > Utilisateurs de la console Firebase et cliquez sur l'icône à trois points au-dessus de la liste des utilisateurs. Vous verrez une boîte de dialogue avec une liste de paramètres de hachage de mot de passe que vous pouvez utiliser avec les commandes auth:import
et auth:export
:
hash_config {
algorithm: SCRYPT,
base64_signer_key: <...sensitive...>,
base64_salt_separator: <...sensitive...>,
rounds: 8,
mem_cost: 14,
}
Ces valeurs sont sensibles, stockez-les donc avec soin. La plupart des projets Firebase utilisent SCRYPT
, une version modifiée de l'algorithme de hachage scrypt , qui est la valeur par défaut pour les nouveaux projets.
authentification:importation
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 | |
---|---|
fichier_compte | Le fichier CSV ou JSON qui contient les comptes utilisateur à importer. Voir Format de fichier . |
algorithme de hachage | L'algorithme utilisé pour hacher les mots de passe dans le fichier du compte utilisateur. Obligatoire pour importer des comptes avec des champs de mot de passe. Une des valeurs suivantes : BCRYPT , SCRYPT , STANDARD_SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 , HMAC_MD5 , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 , PBKDF2_SHA256 . |
touche dièse | Clé utilisée pour hacher les mots de passe. Requis pour les algorithmes SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 et HMAC_MD5 . Cet argument doit être formaté sous forme de chaîne codée en base64 . |
séparateur de sel | Séparateur de sel qui sera ajouté au sel lors de la vérification du mot de passe. Facultatif pour tous les algorithmes. Cet argument doit être formaté sous forme de chaîne codée en base64 . |
Les manches | Le nombre de tours utilisés pour hacher les mots de passe. Requis pour les algorithmes SCRYPT , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 et PBKDF2_SHA256 . |
coût mémoire | Ce paramètre représente soit le coût mémoire requis pour l'algorithme SCRYPT OU le coût CPU/mémoire requis pour l'algorithme STANDARD_SCRYPT . |
parallélisation | La parallélisation de l'algorithme de hachage. Requis pour l'algorithme STANDARD_SCRYPT . |
taille de bloc | La taille du bloc (normalement 8) de l'algorithme de hachage. Requis pour l'algorithme STANDARD_SCRYPT . |
dk-len | Longueur de clé dérivée de l'algorithme de hachage. Requis pour l'algorithme STANDARD_SCRYPT . |
ordre d'entrée de hachage | L'ordre du mot de passe et du sel. Les valeurs possibles sont SALT_FIRST et PASSWORD_FIRST . Cet indicateur s'applique à SHA512 , SHA256 , SHA1 , MD5 , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 et HMAC_MD5 . |
authentification:exportation
firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Paramètres | |
---|---|
fichier_compte | Le fichier CSV ou JSON vers lequel exporter. Voir Format de fichier . |
format de fichier | Facultatif. Le format de fichier à exporter : soit CSV, soit 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 du compte utilisateur peut être formaté au format CSV ou JSON .
CSV
Un fichier de compte utilisateur CSV a le format suivant :
Numéro de colonne | Description du champ | Type de champ | commentaires |
---|---|---|---|
1 | UID | Chaîne | Requis Cet identifiant doit être unique parmi tous les comptes de vos projets Firebase. Si vous importez un compte avec un UID qui existe déjà, le compte sera écrasé. |
2 | Chaîne | Facultatif | |
3 | Email verifié | Booléen | Facultatif |
4 | Hachage de mot de passe | Chaîne | Facultatif Une chaîne codée en base64. Ce champ nécessite que l'appelant ait le rôle d'éditeur ou de propriétaire . |
5 | Sel de mot de passe | Chaîne | Facultatif Une chaîne codée en base64. Ce champ nécessite que l'appelant ait le rôle d'éditeur ou de propriétaire . |
6 | Nom | Chaîne | Facultatif |
7 | URL des photos | Chaîne | Facultatif |
8 | Identifiant Google | Chaîne | Facultatif |
9 | Courriel Google | Chaîne | Facultatif |
dix | Nom d'affichage Google | Chaîne | Facultatif |
11 | URL des photos Google | Chaîne | Facultatif |
12 | Facebook ID | Chaîne | Facultatif |
13 | Courriel Facebook | Chaîne | Facultatif |
14 | Nom d'affichage Facebook | Chaîne | Facultatif |
15 | URL des photos Facebook | Chaîne | Facultatif |
16 | Identifiant Twitter | Chaîne | Facultatif |
17 | Courriel Twitter | Chaîne | Facultatif |
18 | Nom d'affichage Twitter | Chaîne | Facultatif |
19 | URL des photos Twitter | Chaîne | Facultatif |
20 | Identifiant GitHub | Chaîne | Facultatif |
21 | E-mail GitHub | Chaîne | Facultatif |
22 | Nom d’affichage GitHub | Chaîne | Facultatif |
23 | URL des photos GitHub | Chaîne | Facultatif |
24 | Temps de création de l'utilisateur | Long | Facultatif Horodatage Epoch Unix en millisecondes. |
25 | Heure de la dernière connexion | Long | Facultatif Horodatage Epoch Unix en millisecondes. |
26 | Numéro de téléphone | Chaîne | Facultatif |
Si vous laissez une valeur facultative non spécifiée, assurez-vous d'inclure toujours un champ vide pour la valeur. Un champ vide peut contenir 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