Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Otentikasi dengan Firebase menggunakan sistem otentikasi khusus dan Unity

Anda dapat mengintegrasikan Firebase Authentication dengan sistem autentikasi khusus dengan memodifikasi server autentikasi untuk menghasilkan token bertanda tangan khusus saat pengguna berhasil masuk. Aplikasi Anda menerima token ini dan menggunakannya untuk mengautentikasi dengan Firebase.

Sebelum kamu memulai

  1. Sebelum Anda dapat menggunakan Firebase Authentication , Anda perlu:

    • Daftarkan proyek Unity Anda dengan proyek Firebase Anda.
    • Tambahkan Firebase Unity SDK (khususnya, FirebaseAuth.unitypackage ) ke proyek Unity Anda.

    Temukan petunjuk mendetail untuk langkah-langkah penyiapan awal ini di Tambahkan Firebase ke proyek Unity Anda .

  2. Dapatkan kunci server proyek Anda:
    1. Buka halaman Akun Layanan di pengaturan proyek Anda.
    2. Klik Buat Kunci Pribadi Baru di bagian bawah Firebase Admin SDK pada halaman Akun Layanan .
    3. Pasangan kunci publik/pribadi akun layanan baru secara otomatis disimpan di komputer Anda. Salin file ini ke server otentikasi Anda.

Otentikasi dengan Firebase

Kelas FirebaseAuth adalah gerbang untuk semua panggilan API. Itu dapat diakses melalui FirebaseAuth.DefaultInstance .
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

Panggil Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync dengan token dari server autentikasi Anda.

  1. Saat pengguna masuk ke aplikasi Anda, kirimkan kredensial masuk mereka (misalnya, nama pengguna dan sandi) ke server autentikasi Anda. Server Anda memeriksa kredensial dan mengembalikan token khusus jika valid.
  2. Setelah Anda menerima token khusus dari server autentikasi, teruskan ke Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync untuk memasukkan pengguna:
    auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInWithCustomTokenAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInWithCustomTokenAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.FirebaseUser newUser = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          newUser.DisplayName, newUser.UserId);
    });
    

Langkah selanjutnya

Setelah pengguna masuk untuk pertama kalinya, akun pengguna baru dibuat dan ditautkan ke kredensial—yaitu, nama pengguna dan sandi, nomor telepon, atau informasi penyedia autentikasi—yang digunakan pengguna untuk masuk. Akun baru ini disimpan sebagai bagian dari proyek Firebase Anda, dan dapat digunakan untuk mengidentifikasi pengguna di setiap aplikasi dalam proyek Anda, terlepas dari cara pengguna masuk.

  • Di aplikasi, Anda bisa mendapatkan informasi profil dasar pengguna dari objek Firebase.Auth.FirebaseUser :

    Firebase.Auth.FirebaseUser user = auth.CurrentUser;
    if (user != null) {
      string name = user.DisplayName;
      string email = user.Email;
      System.Uri photo_url = user.PhotoUrl;
      // The user's Id, unique to the Firebase project.
      // Do NOT use this value to authenticate with your backend server, if you
      // have one; use User.TokenAsync() instead.
      string uid = user.UserId;
    }
    
  • Dalam Aturan Keamanan Firebase Realtime Database dan Cloud Storage , Anda bisa mendapatkan ID pengguna unik pengguna yang masuk dari variabel auth , dan menggunakannya untuk mengontrol data apa yang dapat diakses pengguna.

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

Untuk mengeluarkan pengguna, panggil SignOut() :

auth.SignOut();