Команда
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