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