аутентификация: импорт и аутентификация: экспорт

  • Команда auth:import импортирует учетные записи пользователей в проекты Firebase.

  • Команда auth:export экспортирует учетные записи пользователей в файлы JSON и CSV.

Параметры хеша пароля

Чтобы определить параметры хэша пароля, используемые для вашего проекта, перейдите в раздел «Аутентификация» > «Пользователи» консоли Firebase и щелкните значок с тремя точками над списком пользователей. Вы увидите диалоговое окно со списком параметров хэша пароля, которые вы можете использовать с командами auth:import и auth:export :

hash_config {
  algorithm: SCRYPT,
  base64_signer_key: <...sensitive...>,
  base64_salt_separator: <...sensitive...>,
  rounds: 8,
  mem_cost: 14,
}

Эти значения конфиденциальны, поэтому храните их с осторожностью. Большинство проектов Firebase используют SCRYPTмодифицированную версию алгоритма хеширования scrypt , который используется по умолчанию для новых проектов.

аутентификация: импорт

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
Параметры
файл_аккаунта Файл CSV или JSON, содержащий импортируемые учетные записи пользователей. См. Формат файла .
хэш-алгоритм Алгоритм, используемый для хеширования паролей в файле учетной записи пользователя.
Требуется для импорта учетных записей с полями пароля. Одно из следующих значений: BCRYPT , SCRYPT , STANDARD_SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 , HMAC_MD5 , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 , PBKDF2_SHA256 .
хэш-ключ Ключ, используемый для хеширования паролей.
Требуется для алгоритмов SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 и HMAC_MD5 . Этот аргумент должен быть отформатирован как строка в кодировке Base64 .
сепаратор соли Разделитель соли, который будет добавлен к соли при проверке пароля.
Необязательно для всех алгоритмов. Этот аргумент должен быть отформатирован как строка в кодировке Base64 .
раунды Количество раундов, используемых для хеширования паролей.
Требуется для алгоритмов SCRYPT , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 и PBKDF2_SHA256 .
мем-стоимость Этот параметр представляет либо стоимость памяти, необходимую для алгоритма SCRYPT , ИЛИ стоимость ЦП/памяти, необходимую для алгоритма STANDARD_SCRYPT .
распараллеливание Распараллеливание алгоритма хеширования.
Требуется для алгоритма STANDARD_SCRYPT .
размер блока Размер блока (обычно 8) алгоритма хеширования.
Требуется для алгоритма STANDARD_SCRYPT .
Дк-Лен Полученная длина ключа алгоритма хеширования.
Требуется для алгоритма STANDARD_SCRYPT .
порядок ввода хэша Порядок пароля и соли.
Возможные значения: SALT_FIRST и PASSWORD_FIRST . Этот флаг применяется к SHA512 , SHA256 , SHA1 , MD5 , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 и HMAC_MD5 .

аутентификация: экспорт

firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Параметры
файл_аккаунта Файл CSV или JSON для экспорта. См. Формат файла .
формат_файла Необязательный. Формат файла для экспорта: CSV или JSON.
Если имя файла, указанное в параметре account_file , заканчивается на .csv или .json , используется этот формат, а этот параметр игнорируется.

Формат файла

Файл учетной записи пользователя можно отформатировать как CSV или JSON .

CSV-файл

Файл учетной записи пользователя CSV имеет следующий формат:

Номер столбца Описание поля Тип поля Комментарии
1 UID Нить Необходимый
Этот идентификатор должен быть уникальным среди всех учетных записей в ваших проектах Firebase. Если вы импортируете учетную запись с уже существующим UID, учетная запись будет перезаписана.
2 Электронная почта Нить Необязательный
3 Электронная почта проверена логическое значение Необязательный
4 Хэш пароля Нить Необязательный
Строка в кодировке Base64. Это поле требует, чтобы вызывающий абонент имел роль редактора или владельца .
5 Соль для пароля Нить Необязательный
Строка в кодировке Base64. Это поле требует, чтобы вызывающий абонент имел роль редактора или владельца .
6 Имя Нить Необязательный
7 URL-адрес фотографии Нить Необязательный
8 Google ID Нить Необязательный
9 Электронная почта Google Нить Необязательный
10 Отображаемое имя Google Нить Необязательный
11 URL-адрес Google Фото Нить Необязательный
12 Идентификатор Facebook Нить Необязательный
13 Электронная почта Facebook Нить Необязательный
14 Отображаемое имя Facebook Нить Необязательный
15 URL-адрес фотографии Facebook Нить Необязательный
16 Идентификатор Твиттера Нить Необязательный
17 Электронная почта Твиттера Нить Необязательный
18 Отображаемое имя в Твиттере Нить Необязательный
19 URL-адрес фотографии в Твиттере Нить Необязательный
20 Идентификатор GitHub Нить Необязательный
21 Электронная почта GitHub Нить Необязательный
22 Отображаемое имя GitHub Нить Необязательный
23 URL-адрес фотографии GitHub Нить Необязательный
24 Время создания пользователя Длинный Необязательный
Временная метка Epoch Unix в миллисекундах.
25 Время последнего входа в систему Длинный Необязательный
Временная метка Epoch Unix в миллисекундах.
26 Номер телефона Нить Необязательный

Если вы оставите необязательное значение неуказанным, убедитесь, что вы по-прежнему включаете пустое поле для этого значения. Пустое поле может содержать любое количество пробелов.

Например, следующая строка представляет учетную запись пользователя:

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

Файл учетной записи пользователя JSON имеет следующий формат:

{
  "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
        },
        ...
      ]
    },
    ...
  ]
}

Замените PROVIDER_ID одним из следующих значений:

  • google.com
  • facebook.com
  • github.com
  • twitter.com