Melakukan Autentikasi dengan Firebase Menggunakan Sistem Autentikasi Kustom

Anda dapat mengintegrasikan Firebase Authentication dengan sistem autentikasi kustom, dengan cara memodifikasi server autentikasi Anda untuk menghasilkan token bertanda kustom ketika pengguna berhasil login. Aplikasi Anda akan menerima token ini dan menggunakannya untuk melakukan autentikasi dengan Firebase.

Sebelum memulai

  1. Jika Anda belum melakukannya, ikuti langkah-langkah di panduan Memulai.
  2. Instal dan konfigurasikan Firebase Admin SDK. Pastikan untuk menginisialisasi SDK dengan kredensial yang benar untuk project Firebase Anda.

Melakukan Autentikasi dengan Firebase

  1. Ketika pengguna login ke aplikasi Anda, kirimkan kredensial login mereka (misalnya, nama pengguna dan sandi) ke server autentikasi Anda. Server Anda akan memeriksa kredensial tersebut dan, jika kredensial tersebut valid, membuat token Firebase kustom lalu mengirimkan kembali token tersebut ke aplikasi Anda.

  2. Setelah Anda menerima token kustom dari server autentikasi, teruskan token tersebut ke signInWithCustomToken() agar pengguna dapat login:

    try {
        final userCredential =
            await FirebaseAuth.instance.signInWithCustomToken(token);
        print("Sign-in successful.");
    } on FirebaseAuthException catch (e) {
        switch (e.code) {
            case "invalid-custom-token":
                print("The supplied token is not a Firebase custom auth token.");
                break;
            case "custom-token-mismatch":
                print("The supplied token is for a different Firebase project.");
                break;
            default:
                print("Unknown error.");
        }
    }
    

Langkah berikutnya

Setelah pengguna membuat akun baru, akun ini akan disimpan sebagai bagian dari project Firebase Anda, dan dapat digunakan untuk mengidentifikasi pengguna di setiap aplikasi dalam project, terlepas dari metode login yang digunakan pengguna.

Di aplikasi, Anda bisa mendapatkan informasi profil dasar pengguna dari objek User. Baca bagian Mengelola Pengguna.

Di Aturan Keamanan Firebase Realtime Database dan Cloud Storage, Anda bisa mendapatkan ID pengguna unik milik pengguna yang login dari variabel auth, dan menggunakannya untuk mengontrol data apa saja yang dapat diakses oleh pengguna.

Anda dapat mengizinkan pengguna untuk login ke aplikasi menggunakan beberapa penyedia autentikasi dengan menautkan kredensial penyedia autentikasi) ke akun pengguna yang ada.

Untuk memproses logout pengguna, panggil signOut():

await FirebaseAuth.instance.signOut();