O comando
auth:import
importa contas de usuário para projetos do Firebase.O comando
auth:export
exporta contas de usuário para arquivos JSON e CSV.
Parâmetros de hash da senha
Para determinar os parâmetros de hash de senha usados no seu projeto, navegue até
a seção Autenticação > Usuários no Console do Firebase e clique no
ícone de três pontos acima da lista. de usuários. Você verá uma caixa de diálogo com uma lista
de parâmetros de hash de senha que podem ser usados com os comandos auth:import
e auth:export
:
hash_config {
algorithm: SCRYPT,
base64_signer_key: <...sensitive...>,
base64_salt_separator: <...sensitive...>,
rounds: 8,
mem_cost: 14,
}
Como esses valores são confidenciais, recomendamos armazená-los com cuidado. A maioria dos projetos do Firebase usa
SCRYPT
, uma versão modificada do algoritmo de hash scrypt (em inglês),
que é o padrão para novos projetos.
auth:import
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 | |
---|---|
account_file | O arquivo CSV ou JSON que contém as contas de usuário para importação. Consulte Formato de arquivo. |
hash-algo | O algoritmo usado para executar o hash de senhas no arquivo de conta de usuário. Obrigatório ao importar contas com campos de senha. Um dos seguintes valores: BCRYPT ,
SCRYPT , STANDARD_SCRYPT ,
HMAC_SHA512 , HMAC_SHA256 ,
HMAC_SHA1 , HMAC_MD5 , MD5 ,
SHA512 , SHA256 , SHA1 ,
PBKDF_SHA1 , PBKDF2_SHA256 . |
hash-key | Chave usada para senhas com hash. Obrigatório para os algoritmos SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 e HMAC_MD5
Esse argumento deve ser formatado como uma string codificada em base64. |
salt-separator | Separador de salt que será anexado ao salt na verificação da senha. Opcional para todos os algoritmos. Esse argumento deve ser formatado como uma string codificada em base64. |
rounds | O número de rodadas para executar o hash de senhas. Obrigatório para os algoritmos SCRYPT , MD5 , SHA512 ,
SHA256 , SHA1 , PBKDF_SHA1 e
PBKDF2_SHA256 . |
mem-cost | Este parâmetro representa o custo da memória relativo ao algoritmo SCRYPT OU o custo de CPU/memória relativo ao algoritmo STANDARD_SCRYPT . |
parallelization | O carregamento em paralelo do algoritmo de hash. Obrigatório para o algoritmo STANDARD_SCRYPT . |
block-size | O tamanho do bloco (normalmente 8) do algoritmo de hash. Obrigatório para o algoritmo STANDARD_SCRYPT . |
dk-len | O comprimento da chave derivada do algoritmo de hash. Obrigatório para o algoritmo STANDARD_SCRYPT . |
hash-input-order | A ordem da senha e o sal. Os valores possíveis são SALT_FIRST e PASSWORD_FIRST . Essa sinalização se aplica a
SHA512 , SHA256 , SHA1 ,
MD5 , HMAC_SHA512 , HMAC_SHA256 ,
HMAC_SHA1 e HMAC_MD5 . |
auth:export
firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Parâmetros | |
---|---|
account_file | O arquivo CSV ou JSON para onde será feita a exportação. Consulte Formato de arquivo. |
file_format | Opcional. O formato do arquivo de exportação pode ser csv ou json. Se o nome do arquivo especificado no parâmetro account_file terminar com .csv ou .json , esse formato será usado e o parâmetro ignorado.
|
Formato do arquivo
O arquivo da conta de usuário pode ser formatado como CSV ou JSON.
CSV
Um arquivo CSV de conta de usuário tem este formato:
Número da coluna | Descrição do campo | Tipo de campo | Comentários |
---|---|---|---|
1 | UID | String | Obrigatório Esse código deve ser exclusivo entre todas as contas nos projetos do Firebase. Se você importar uma conta com um UID existente, ela será substituída. |
2 | String | Opcional | |
3 | E-mail verificado | Booleano | Opcional |
4 | Hash da senha | String | Opcional Uma string codificada em base64. Esse campo exige que o autor da chamada tenha o papel de Editor ou Proprietário. |
5 | Salt da senha | String | Opcional Uma string codificada em base64. Esse campo exige que o autor da chamada tenha o papel de Editor ou Proprietário. |
6 | Nome | String | Opcional |
7 | URL de foto | String | Opcional |
8 | ID do Google | String | Opcional |
9 | E-mail do Google | String | Opcional |
10 | Nome de exibição no Google | String | Opcional |
11 | URL de foto do Google | String | Opcional |
12 | ID do Facebook | String | Opcional |
13 | E-mail do Facebook | String | Opcional |
14 | Nome de exibição no Facebook | String | Opcional |
15 | URL de foto do Facebook | String | Opcional |
16 | ID do Twitter | String | Opcional |
17 | E-mail do Twitter | String | Opcional |
18 | Nome de exibição no Twitter | String | Opcional |
19 | URL de foto do Twitter | String | Opcional |
20 | ID do GitHub | String | Opcional |
21 | E-mail do GitHub | String | Opcional |
22 | Nome de exibição no GitHub | String | Opcional |
23 | URL de foto do GitHub | String | Opcional |
24 | Tempo de criação do usuário | long | Opcional Timestamp Epoch Unix em milissegundos. |
25 | Último tempo de login | long | Opcional Timestamp Epoch Unix em milissegundos. |
26 | Telefone | String | Opcional |
Se um valor opcional não for especificado, adicione um campo vazio ao valor. Um campo vazio pode ser qualquer quantidade de caracteres de espaço.
Por exemplo, esta linha representa uma conta de usuário:
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
Um arquivo JSON de conta de usuário tem este 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 }, ... ] }, ... ] }
Substitua PROVIDER_ID por um dos seguintes valores:
google.com
facebook.com
github.com
twitter.com