write:authentication (atau read:authentication untuk menampilkan daftar). Impor tidak pernah menggunakan token pengguna akhir atau kunci API verifikasi. Dalam contoh, MANAGEMENT_BASE adalah:
Dua cara impor
Impor file
1. Unggah
Setiap sakelar
keep_* bernilai true kecuali Anda mengirim false. Panggilan ini mengembalikan 202 dengan sebuah tugas. Sebuah aplikasi menyimpan paling banyak 5 file yang diunggah pada satu waktu.
2. Periksa dry run
Setiap unggahan langsung memulai dry run. Dry run memeriksa setiap orang dan tidak menulis apa pun. Lakukan polling keGET import-jobs/{id}/:
Dry run yang gagal mencantumkan kesalahannya. Perbaiki file lalu unggah ulang.
3. Mulai impor
POST import-jobs/{id}/start/ mengimpor apa yang sudah diperiksa oleh dry run dan mengembalikan 202.
- Orang diimpor dalam batch 1.000. Setiap batch di-commit secara terpisah.
- Hanya satu impor yang berjalan per aplikasi pada satu waktu (jika tidak,
import_running). - Impor yang terputus dilanjutkan setelah batch terakhir yang di-commit.
- Orang yang sudah diimpor akan dilewati, sehingga Anda dapat menjalankan file yang sama lagi.
- Orang yang memulai impor menerima email ketika impor selesai atau berhenti.
Impor dalam batch
Kirim hingga 1.000 orang per permintaan denganidempotency_key hingga 100 karakter.
- Dry run mengembalikan
200dengan hasilnya dan tidak menulis apa pun. - Dengan
dry_run: false, impor yang berhasil mengembalikan201. Batch dengan kesalahan apa pun mengembalikan400dan tidak mengimpor siapa pun. - Mengulangi permintaan yang sudah di-commit dengan kunci yang sama mengembalikan hasil yang tercatat. Kunci yang sama dengan isi berbeda mengembalikan
400 {"idempotency_key": "different_payload"}. - Parameter Firebase dimasukkan ke dalam objek
firebase:{signer_key, salt_separator, rounds, mem_cost}. GET imports/menampilkan daftar batch yang sudah di-commit.
Format file
JSON
Sebuah array orang, atau objek yangusers-nya berisi array tersebut.
CSV
Kolom bernilai tunggal yang sama, ditambahgoogle_id, apple_id, github_id, microsoft_id, microsoft_tenant_id, organization_slug, organization_name dan organization_role. Orang yang berada di beberapa organisasi mendapat satu baris untuk setiap organisasi.
Duplikat dan akun yang sudah ada
- Baris dengan email yang sama menjadi satu orang. Baris yang identik dihitung sebagai duplikat. Baris dengan lebih banyak tautan, organisasi, atau autentikator akan digabungkan.
- Dua hash kata sandi, rahasia autentikator, atau peran organisasi yang berbeda untuk satu orang adalah kesalahan. Begitu pula
external_idatau subjek penyedia yang diklaim oleh dua orang. - Jika akun dengan email tersebut sudah ada dan dibuat oleh impor sebelumnya, orang tersebut dilewati (
already_imported). Jika orang tersebut mendaftar sendiri, hal itu menjadi kesalahanidentity_conflict. Impor tidak pernah mengubah akun yang sudah ada.
Kata sandi
Parameter Firebase disimpan terenkripsi, hanya untuk aplikasi tersebut. Format lain, atau cost di atas batas ini, berarti pengguna perlu membuat kata sandi baru. Setelah pengguna berhasil masuk untuk pertama kali, Didit menyimpan kata sandinya lagi dalam format Didit sendiri.
Pengguna tanpa kata sandi yang dapat digunakan
Ketika pengguna tidak memiliki hash, atau hash-nya tidak didukung, percobaan kata sandi akan menghasilkan respons kata sandi salah seperti biasa. Didit juga mengirimkan email kepada mereka berisi tautan untuk mengatur kata sandi baru (berlaku 30 menit, paling banyak sekali sehari). Ini hanya terjadi jika email mereka terverifikasi, akun tidak diblokir, dan fitur masuk dengan kata sandi diaktifkan. Dalam hasil,reset_required menghitung pengguna tanpa kata sandi yang dapat digunakan. reset_emails menghitung di antara mereka yang memiliki email terverifikasi: hanya mereka yang dapat dijangkau dengan cara ini. Pengguna dengan email yang belum terverifikasi tidak dapat masuk dengan kata sandi. Mereka tetap dapat masuk dengan kode email jika Anda mengaktifkan metode tersebut.
Tautan sosial, autentikator, dan organisasi
- Tautan sosial disimpan untuk penyedia yang sudah dikonfigurasi aplikasi Anda, di bawah client ID saat ini. Dengan begitu, masuk berikutnya tidak memerlukan bukti email. Subjek Google dan GitHub bersifat global. Subjek Apple bersifat per tim pengembang dan subjek Microsoft bersifat per registrasi aplikasi, sehingga tautan tersebut hanya cocok jika platform lama Anda menggunakan tim atau registrasi yang sama. Tautan ke penyedia yang belum Anda konfigurasi dihitung sebagai
social_unavailabledan tidak diimpor. - Aplikasi autentikator (rahasia TOTP: SHA-1, 6 digit, 30 detik) disimpan terenkripsi. Pengguna yang diimpor harus menggunakannya sebagai faktor kedua. Mereka tidak mendapatkan kode pemulihan.
- Organisasi yang belum ada akan dibuat dari slug-nya.
- Passkey tidak dapat diimpor. Passkey terikat pada domain masuk lama Anda, sehingga pengguna perlu menambahkan passkey baru setelah mereka masuk dengan Didit.
Hasil
Setiap uji coba, batch, dan proses mengembalikanresult yang sama:
Respons tidak pernah berisi hash kata sandi, salt, rahasia autentikator, atau nilai kolom.
Sebelum Anda beralih
Uji di aplikasi sandbox Anda:- masuk dengan setiap format kata sandi yang Anda impor,
- email untuk mengatur kata sandi baru bagi pengguna tanpa hash yang dapat digunakan,
- masuk dengan akun sosial dan kode autentikator untuk pengguna yang diimpor,
- menjalankan file yang sama dua kali.
vendor_data setiap pengguna sama dengan nilai yang Anda gunakan untuk verifikasi dan transaksi mereka.