La commande
auth:import
importe des comptes utilisateur dans des projets Firebase.La commande
auth:export
exporte les comptes utilisateur au format 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 Authentification > la section Utilisateurs de la console Firebase, puis cliquez sur
l'icône des trois points
au-dessus de la liste des utilisateurs. Une boîte de dialogue contenant une liste
de paramètres de hachage de mot de passe que vous pouvez utiliser avec auth:import
et auth:export
commandes:
hash_config {
algorithm: SCRYPT,
base64_signer_key: <...sensitive...>,
base64_salt_separator: <...sensitive...>,
rounds: 8,
mem_cost: 14,
}
Ces valeurs étant sensibles, conservez-les avec précaution. La plupart des projets Firebase utilisent
SCRYPT
, une version modifiée de l'algorithme de hachage scrypt
qui est le paramètre par défaut pour les nouveaux projets.
auth:importer
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 utilisateur à importer. Consultez la section Format de fichier. |
hash-algo | Algorithme utilisé pour hacher les mots de passe dans le fichier de compte 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 le paramètre SCRYPT , HMAC_SHA512 , HMAC_SHA256
HMAC_SHA1 et HMAC_MD5 .
Cet argument doit être encodé 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 avoir le format encodée en base64. |
rounds | Nombre de arrondis utilisés pour hacher les mots de passe. Obligatoire pour le champ SCRYPT , MD5 , SHA512
SHA256 , SHA1 , PBKDF_SHA1 et
PBKDF2_SHA256 . |
mem-cost | Ce paramètre représente le coût de la mémoire requis pour le
Algorithme SCRYPT OU coût du processeur/de la mémoire requis pour
Algorithme STANDARD_SCRYPT .
|
parallélisation | Parallélisation de l'algorithme de hachage. Obligatoire pour l'algorithme STANDARD_SCRYPT . |
taille de bloc | Taille de bloc (normalement 8) de l'algorithme de hachage. Obligatoire pour l'algorithme STANDARD_SCRYPT . |
Dk-Len | Longueur de clé dérivée de l'algorithme de hachage. Obligatoire pour l'algorithme STANDARD_SCRYPT . |
ordre-d'entrée-de-hachage | Ordre du mot de passe et du salage. Les valeurs possibles sont les suivantes : SALT_FIRST et PASSWORD_FIRST . Cette option s'applique à SHA512 , SHA256 , SHA1 , MD5 , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 et HMAC_MD5 . |
auth:exporter
firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Paramètres | |
---|---|
fichier_compte | Fichier CSV ou JSON vers lequel exporter. Voir Fichier de sortie. |
format_fichier | 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 du compte utilisateur peut être 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 | Obligatoire Cet ID 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 | 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 | Salt des mots 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 la 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 de la photo Google | Chaîne | Facultatif |
12 | ID Facebook | Chaîne | Facultatif |
13 | 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 sur 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 en millisecondes de l'epoch. |
25 | Heure de la dernière connexion | Long | Facultatif Code temporel Unix en millisecondes de l'epoch. |
26 | Numéro de téléphone | Chaîne | Facultatif |
Si vous laissez une valeur facultative non spécifiée, veillez à toujours inclure un un champ vide pour la valeur. Un champ vide peut être n’importe quel nombre d’espace caractères.
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