kimlik doğrulama:içe aktarma ve kimlik doğrulama:dışa aktarma

  • auth:import komutu, kullanıcı hesaplarını Firebase projelerine aktarır.

  • auth:export komutu, kullanıcı hesaplarını JSON ve CSV dosyalarına aktarır.

Şifre karması parametreleri

Projeniz için kullanılan şifre karma parametrelerini belirlemek için Firebase konsolunun Kimlik Doğrulama > Kullanıcılar bölümüne gidin ve kullanıcı listesinin üzerindeki üç nokta simgesini tıklayın. auth:import ve auth:export komutlarıyla kullanabileceğiniz şifre karması parametrelerinin listesini içeren bir iletişim kutusu göreceksiniz:

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

Bu değerler hassastır, bu nedenle bunları dikkatli bir şekilde saklayın. Çoğu Firebase projesi, yeni projeler için varsayılan olan şifre karma algoritmasının değiştirilmiş bir versiyonu olan SCRYPT kullanır.

yetki:içe aktarma

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
Parametreler
hesap_dosyası İçe aktarılacak kullanıcı hesaplarını içeren CSV veya JSON dosyası. Bkz . Dosya biçimi .
hash-algo Kullanıcı hesabı dosyasındaki parolaları karma hale getirmek için kullanılan algoritma.
Şifre alanlarına sahip hesapları içe aktarmak için gereklidir. Şu değerlerden biri: BCRYPT , SCRYPT , STANDARD_SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 , HMAC_MD5 , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 , PBKDF2_SHA256 .
kare tuşu Şifreleri karma hale getirmek için kullanılan anahtar.
SCRYPT , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 ve HMAC_MD5 algoritmaları için gereklidir. Bu bağımsız değişkenin base64 kodlu bir dize olarak biçimlendirilmesi gerekir.
tuz ayırıcı Şifre doğrulanırken tuza eklenecek tuz ayırıcı.
Tüm algoritmalar için isteğe bağlıdır. Bu bağımsız değişkenin base64 kodlu bir dize olarak biçimlendirilmesi gerekir.
turlar Parolaları karma hale getirmek için kullanılan tur sayısı.
SCRYPT , MD5 , SHA512 , SHA256 , SHA1 , PBKDF_SHA1 ve PBKDF2_SHA256 algoritmaları için gereklidir.
hafıza maliyeti Bu parametre ya SCRYPT algoritması için gereken bellek maliyetini VEYA STANDARD_SCRYPT algoritması için gereken CPU/bellek maliyetini temsil eder.
paralelleştirme Karma algoritmasının paralelleştirilmesi.
STANDARD_SCRYPT algoritması için gereklidir.
blok boyutu Karma algoritmasının blok boyutu (normalde 8'dir).
STANDARD_SCRYPT algoritması için gereklidir.
dk-len Karma algoritmasının türetilmiş anahtar uzunluğu.
STANDARD_SCRYPT algoritması için gereklidir.
hash-giriş sırası Şifre ve tuzun sırası.
Olası değerler SALT_FIRST ve PASSWORD_FIRST . Bu işaret SHA512 , SHA256 , SHA1 , MD5 , HMAC_SHA512 , HMAC_SHA256 , HMAC_SHA1 ve HMAC_MD5 için geçerlidir.

yetki:dışa aktarma

firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
Parametreler
hesap_dosyası Dışa aktarılacak CSV veya JSON dosyası. Bkz . Dosya biçimi .
dosya formatı İsteğe bağlı. Dışa aktarılacak dosya formatı: CSV veya JSON.
account_file parametresinde belirtilen dosya adı .csv veya .json ile bitiyorsa bu format kullanılır ve bu parametre dikkate alınmaz.

Dosya formatı

Kullanıcı hesabı dosyası CSV veya JSON olarak biçimlendirilebilir.

CSV

CSV kullanıcı hesabı dosyası aşağıdaki formattadır:

Sütun numarası Alan Açıklama Alan türü Yorumlar
1 UID Sicim Gerekli
Bu kimlik, Firebase projelerinizdeki tüm hesaplar arasında benzersiz olmalıdır. Zaten mevcut bir UID'ye sahip bir hesabı içe aktarırsanız hesabın üzerine yazılır.
2 E-posta Sicim İsteğe bağlı
3 E-posta Doğrulandı Boolean İsteğe bağlı
4 Şifre Karması Sicim İsteğe bağlı
Base64 ile kodlanmış bir dize. Bu alan arayanın Düzenleyici veya Sahip rolüne sahip olmasını gerektirir.
5 Şifre Tuzu Sicim İsteğe bağlı
Base64 ile kodlanmış bir dize. Bu alan arayanın Düzenleyici veya Sahip rolüne sahip olmasını gerektirir.
6 İsim Sicim İsteğe bağlı
7 Fotoğraf URL'si Sicim İsteğe bağlı
8 Google Kimliği Sicim İsteğe bağlı
9 Google E-postası Sicim İsteğe bağlı
10 Google Görünen Ad Sicim İsteğe bağlı
11 Google Fotoğraf URL'si Sicim İsteğe bağlı
12 Facebook kimliği Sicim İsteğe bağlı
13 Facebook E-postası Sicim İsteğe bağlı
14 Facebook Görünen Ad Sicim İsteğe bağlı
15 Facebook Fotoğraf URL'si Sicim İsteğe bağlı
16 Twitter kimliği Sicim İsteğe bağlı
17 Twitter E-postası Sicim İsteğe bağlı
18 Twitter Görünen Adı Sicim İsteğe bağlı
19 Twitter Fotoğraf URL'si Sicim İsteğe bağlı
20 GitHub Kimliği Sicim İsteğe bağlı
21 GitHub E-postası Sicim İsteğe bağlı
22 GitHub Görünen Adı Sicim İsteğe bağlı
23 GitHub Fotoğraf URL'si Sicim İsteğe bağlı
24 Kullanıcı Oluşturma Süresi Uzun İsteğe bağlı
Milisaniye cinsinden Epoch Unix Zaman Damgası.
25 Son Oturum Açma Zamanı Uzun İsteğe bağlı
Milisaniye cinsinden Epoch Unix Zaman Damgası.
26 Telefon numarası Sicim İsteğe bağlı

İsteğe bağlı bir değeri belirtmeden bırakırsanız değer için hâlâ boş bir alan eklediğinizden emin olun. Boş bir alan herhangi bir sayıda boşluk karakteri olabilir.

Örneğin aşağıdaki satır bir kullanıcı hesabını temsil eder:

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 kullanıcı hesabı dosyası aşağıdaki formattadır:

{
  "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 aşağıdaki değerlerden biriyle değiştirin:

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