autenticación: importar y autenticación: exportar

  • 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