auth:import 및 auth:export

  • auth:import 명령어는 사용자 계정을 Firebase 프로젝트로 가져옵니다.

  • auth:export 명령어는 사용자 계정을 JSON 및 CSV 파일로 내보냅니다.

비밀번호 해시 매개변수

프로젝트에 사용되는 비밀번호 해시 매개변수를 확인하려면 Firebase Console의 인증 > 사용자 섹션으로 이동하고 사용자 목록 위의 점 3개 아이콘을 클릭합니다. auth:importauth:export 명령어와 함께 사용할 수 있는 비밀번호 해시 매개변수 목록이 있는 대화상자가 표시됩니다.

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

이러한 값은 민감한 정보이므로 저장 시 주의하세요. 대부분의 Firebase 프로젝트에서는 scrypt 해싱 알고리즘의 수정된 버전SCRYPT를 사용하며 새 프로젝트에 기본값으로 설정됩니다.

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
매개변수
account_file 가져올 사용자 계정을 포함하는 CSV 또는 JSON 파일입니다. 파일 형식을 참조하세요.
hash-algo 사용자 계정 파일에서 비밀번호를 해시하는 데 사용되는 알고리즘입니다.
비밀번호 필드가 있는 계정을 가져올 때 필요합니다. BCRYPT, SCRYPT, STANDARD_SCRYPT, HMAC_SHA512, HMAC_SHA256, HMAC_SHA1, HMAC_MD5, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1, PBKDF2_SHA256 값 중 하나입니다.
hash-key 비밀번호를 해시하는 데 사용되는 키입니다.
SCRYPT, HMAC_SHA512, HMAC_SHA256, HMAC_SHA1, HMAC_MD5 알고리즘에 필요합니다. 이 인수는 base64 인코딩 문자열 형식이어야 합니다.
salt-separator 비밀번호를 확인할 때 솔트에 추가되는 솔트 구분자입니다.
모든 알고리즘에서 선택사항입니다. 이 인수는 base64 인코딩 문자열 형식이어야 합니다.
rounds 비밀번호를 해시하는 데 사용되는 라운드 수입니다.
SCRYPT, MD5, SHA512, SHA256, SHA1, PBKDF_SHA1, PBKDF2_SHA256 알고리즘에 필요합니다.
mem-cost 이 매개변수는 SCRYPT 알고리즘에 필요한 메모리 비용 또는 STANDARD_SCRYPT 알고리즘에 필요한 CPU/메모리 비용을 나타냅니다.
parallelization 해싱 알고리즘의 동시 로드입니다.
STANDARD_SCRYPT 알고리즘에 필요합니다.
block-size 해싱 알고리즘의 블록 크기(일반적으로 8)입니다.
STANDARD_SCRYPT 알고리즘에 필요합니다.
dk-len 해싱 알고리즘의 파생 키 길이입니다.
STANDARD_SCRYPT 알고리즘에 필요합니다.
hash-input-order 비밀번호와 솔트의 순서입니다.
가능한 값은 SALT_FIRSTPASSWORD_FIRST입니다. 이 플래그는 SHA512, SHA256, SHA1, MD5, HMAC_SHA512, HMAC_SHA256, HMAC_SHA1, HMAC_MD5에 적용됩니다.

auth:export

firebase auth:export ACCOUNT_FILE --format=FILE_FORMAT
매개변수
account_file 내보낼 대상 CSV 또는 JSON 파일입니다. 파일 형식을 참조하세요.
file_format 선택사항. 내보낼 파일 형식으로 CSV 또는 JSON입니다.
account_file 매개변수에 지정된 파일 이름이 .csv 또는 .json으로 끝나면 이 형식이 사용되고 이 매개변수는 무시됩니다.

파일 형식

사용자 계정 파일은 CSV 또는 JSON 형식일 수 있습니다.

CSV

CSV 사용자 계정 파일의 형식은 다음과 같습니다.

열 번호 필드 설명 필드 유형 설명
1 UID 문자열 필수
이 ID는 Firebase 프로젝트의 모든 계정에서 고유해야 합니다. 가져온 계정의 UID가 이미 있으면 계정을 덮어쓰게 됩니다.
2 이메일 문자열 선택사항
3 이메일 인증 여부 부울 선택사항
4 비밀번호 해시 문자열 선택사항
base64 인코딩 문자열입니다. 이 필드에서 호출자는 편집자 또는 소유자 역할을 가지고 있어야 합니다.
5 비밀번호 솔트 문자열 선택사항
base64 인코딩 문자열입니다. 이 필드에서 호출자는 편집자 또는 소유자 역할을 가지고 있어야 합니다.
6 이름 문자열 선택사항
7 사진 URL 문자열 선택사항
8 Google ID 문자열 선택사항
9 Google 이메일 문자열 선택사항
10 Google 표시 이름 문자열 선택사항
11 Google 사진 URL 문자열 선택사항
12 Facebook ID 문자열 선택사항
13 Facebook 이메일 문자열 선택사항
14 Facebook 표시 이름 문자열 선택사항
15 Facebook 사진 URL 문자열 선택사항
16 Twitter ID 문자열 선택사항
17 Twitter 이메일 문자열 선택사항
18 Twitter 표시 이름 문자열 선택사항
19 Twitter 사진 URL 문자열 선택사항
20 GitHub ID 문자열 선택사항
21 GitHub 이메일 문자열 선택사항
22 GitHub 표시 이름 문자열 선택사항
23 GitHub 사진 URL 문자열 선택사항
24 사용자 생성 시간 Long 선택사항
에포크 Unix 타임스탬프(밀리초)입니다.
25 마지막 로그인 시간 Long 선택사항
에포크 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