El comando
auth:import
importa cuentas de usuario a proyectos de Firebase.El comando
auth:export
exporta cuentas de usuario a archivos JSON y CSV.
Parámetros de hash de contraseña
Para determinar los parámetros de hash de contraseña utilizados para su proyecto, vaya a la sección Autenticación > Usuarios de Firebase console y haga clic en el ícono de tres puntos encima de la lista de usuarios. Verá un cuadro de diálogo con una lista de parámetros hash de contraseña que puede usar con los comandos auth:import
y auth:export
:
hash_config {
algorithm: SCRYPT,
base64_signer_key: <...sensitive...>,
base64_salt_separator: <...sensitive...>,
rounds: 8,
mem_cost: 14,
}
Estos valores son sensibles, así que guárdelos con cuidado. La mayoría de los proyectos de Firebase utilizan SCRYPT
, una versión modificada del algoritmo hash scrypt , que es el predeterminado para proyectos nuevos.
autenticación: importar
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
Parámetros | |
---|---|
archivo_cuenta | El archivo CSV o JSON que contiene las cuentas de usuario para importar. Consulte Formato de archivo . |
algo-hash | El algoritmo utilizado para codificar contraseñas en el archivo de cuenta de usuario. Requerido para importar cuentas con campos de contraseña. Uno de los siguientes valores: BCRYPT , SCRYPT , STANDARD_SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 , HMAC_MD5 , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 , PBKDF2_SHA256 . |
clave hash | Clave utilizada para codificar contraseñas. Requerido para los algoritmos SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 y HMAC_MD5 . Este argumento debe tener el formato de una cadena codificada en base64 . |
separador de sal | Separador de sal que se agregará a la sal al verificar la contraseña. Opcional para todos los algoritmos. Este argumento debe tener el formato de una cadena codificada en base64 . |
rondas | El número de rondas utilizadas para codificar contraseñas. Requerido para los algoritmos SCRYPT , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 y PBKDF2_SHA256 . |
costo-mem | Este parámetro representa el costo de memoria requerido para el algoritmo SCRYPT O el costo de CPU/memoria requerido para el algoritmo STANDARD_SCRYPT . |
paralelización | La paralelización del algoritmo hash. Requerido para el algoritmo STANDARD_SCRYPT . |
tamaño de bloque | El tamaño de bloque (normalmente es 8) del algoritmo hash. Requerido para el algoritmo STANDARD_SCRYPT . |
dk-len | La longitud de la clave derivada del algoritmo hash. Requerido para el algoritmo STANDARD_SCRYPT . |
orden de entrada hash | El orden de contraseña y sal. Los valores posibles son SALT_FIRST y PASSWORD_FIRST . Esta marca se aplica a SHA512 , SHA256 , SHA1 , MD5 , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 y HMAC_MD5 . |
autenticación: exportar
firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Parámetros | |
---|---|
archivo_cuenta | El archivo CSV o JSON al que exportar. Consulte Formato de archivo . |
formato de archivo | Opcional. El formato de archivo a exportar: CSV o JSON. Si el nombre de archivo especificado en el parámetro account_file termina en .csv o .json , se utiliza ese formato y se ignora este parámetro. |
Formato de archivo
El archivo de la cuenta de usuario puede tener formato CSV o JSON .
CSV
Un archivo de cuenta de usuario CSV tiene el siguiente formato:
Número de columna | Campo Descripción | Tipo de campo | Comentarios |
---|---|---|---|
1 | UID | Cadena | Requerido Esta identificación debe ser única entre todas las cuentas de sus proyectos de Firebase. Si importa una cuenta con un UID que ya existe, la cuenta se sobrescribirá. |
2 | Correo electrónico | Cadena | Opcional |
3 | Correo Electrónico Verificado | Booleano | Opcional |
4 | Hash de contraseña | Cadena | Opcional Una cadena codificada en base64. Este campo requiere que la persona que llama tenga el rol de Editor o Propietario . |
5 | Sal de contraseña | Cadena | Opcional Una cadena codificada en base64. Este campo requiere que la persona que llama tenga el rol de Editor o Propietario . |
6 | Nombre | Cadena | Opcional |
7 | URL de la foto | Cadena | Opcional |
8 | ID de Google | Cadena | Opcional |
9 | Correo electrónico de Google | Cadena | Opcional |
10 | Nombre para mostrar de Google | Cadena | Opcional |
11 | URL de fotos de Google | Cadena | Opcional |
12 | Identificación del facebook | Cadena | Opcional |
13 | Correo electrónico de Facebook | Cadena | Opcional |
14 | Nombre para mostrar de Facebook | Cadena | Opcional |
15 | URL de la foto de Facebook | Cadena | Opcional |
dieciséis | ID de Twitter | Cadena | Opcional |
17 | Correo electrónico | Cadena | Opcional |
18 | Nombre para mostrar en Twitter | Cadena | Opcional |
19 | URL de la foto de Twitter | Cadena | Opcional |
20 | ID de GitHub | Cadena | Opcional |
21 | Correo electrónico de GitHub | Cadena | Opcional |
22 | Nombre para mostrar de GitHub | Cadena | Opcional |
23 | URL de la foto de GitHub | Cadena | Opcional |
24 | Hora de creación de usuario | Largo | Opcional Marca de tiempo de Epoch Unix en milisegundos. |
25 | Hora del último inicio de sesión | Largo | Opcional Marca de tiempo de Epoch Unix en milisegundos. |
26 | Número de teléfono | Cadena | Opcional |
Si deja un valor opcional sin especificar, asegúrese de incluir aún un campo vacío para el valor. Un campo vacío puede tener cualquier número de caracteres de espacio.
Por ejemplo, la siguiente línea representa una cuenta de usuario:
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 archivo de cuenta de usuario JSON tiene el siguiente 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 }, ... ] }, ... ] }
Reemplace PROVIDER_ID con uno de los siguientes valores:
-
google.com
-
facebook.com
-
github.com
-
twitter.com