Pada Mei 2016, kami merilis versi terbaru Google Identity Toolkit sebagai Firebase Authentication , dan pada April 2019, kami merilis Google Cloud's Identity Platform . Produk ini mencakup SDK klien yang ditingkatkan, pustaka UI sumber terbuka, manajemen sesi, dan layanan pengiriman email terintegrasi untuk alur sandi yang terlupa.

Pada tanggal 30 Juni 2020 , SDK yang didokumentasikan di halaman ini dan halaman setelan API akan berhenti berfungsi. (Titik akhir https://identitytoolkit.googleapis.com/... dan https://securetoken.googleapis.com/... , digunakan oleh Identity Platform dan Firebase Authentication, akan terus berfungsi.)

Untuk memigrasi proyek yang ada dari Identity Toolkit, lihat panduan migrasi Identity Platform atau panduan migrasi Firebase Authentication .

Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Bermigrasi dari Google Identity Toolkit ke Firebase Authentication

Versi terbaru Google Identity Toolkit telah dirilis sebagai Firebase Authentication . Ke depannya, pengerjaan fitur di Identity Toolkit akan dihentikan dan semua pengembangan fitur baru akan dilakukan di Firebase Authentication. Kami mendorong pengembang Identity Toolkit untuk pindah ke Firebase Authentication secepat mungkin untuk aplikasi mereka; namun, Identity Toolkit terus berfungsi dan tidak akan digunakan lagi tanpa pengumuman lebih lanjut.

Fitur baru

Firebase Authentication sudah memiliki beberapa peningkatan fitur yang signifikan melalui Google Identity Toolkit:

  • Akses ke semua Firebase

    Firebase adalah platform seluler yang membantu Anda mengembangkan aplikasi berkualitas tinggi dengan cepat, mengembangkan basis pengguna, dan menghasilkan lebih banyak uang. Firebase terdiri dari fitur pelengkap yang dapat Anda padu padankan agar sesuai dengan kebutuhan Anda dan mencakup infrastruktur untuk: analitik seluler, perpesanan cloud , database waktu nyata , penyimpanan file , hosting statis , konfigurasi jarak jauh , pelaporan kerusakan seluler, dan pengujian Android.

  • UI diperbarui

    Kami telah sepenuhnya membuat ulang aliran UI berdasarkan penelitian UX terbaru Google. Ini termasuk pemulihan sandi, penautan akun, alur disambiguasi akun baru / yang sudah ada yang sering kali memerlukan waktu yang signifikan untuk membuat kode dan debug. Ini mengintegrasikan Smart Lock untuk Kata Sandi di Android, yang secara signifikan meningkatkan konversi masuk dan pendaftaran untuk aplikasi yang berpartisipasi. Ini juga mendukung modifikasi tema yang mudah agar sesuai dengan aplikasi Anda dan, untuk penyesuaian maksimum, versi Android dan iOS telah bersumber terbuka.

  • Penyiapan server yang disederhanakan

    Kami telah mempermudah pengembang untuk menggunakan Firebase Authentication. Dengan Identity Toolkit, kami melihat banyak pengembang memilih untuk tidak menerapkan alur pemulihan email yang membuat pengguna tidak mungkin memulihkan akun jika lupa sandi. Firebase Authentication dapat mengirimkan verifikasi email, penyetelan ulang sandi, dan mengubah pesan sandi kepada pengguna dan teks tersebut dapat dengan mudah disesuaikan untuk pengguna Anda. Selain itu, Anda tidak perlu lagi menghosting widget UI untuk pengalihan hosting dan menyelesaikan operasi perubahan sandi.

  • Konsol admin baru

    Firebase memiliki konsol pengembang baru dan bagian Autentikasi memungkinkan Anda untuk melihat, mengubah, dan menghapus pengguna Anda. Ini bisa sangat membantu dalam men-debug alur masuk dan pendaftaran Anda. Konsol tersebut juga memungkinkan Anda untuk mengonfigurasi metode otentikasi dan menyesuaikan template email.

  • SDK baru

    Semua API server Identity Toolkit sekarang tersedia secara native dengan setiap perpustakaan klien kami (Android, iOS, web). Pengembang akan dapat masuk dan mendaftarkan pengguna lama dan baru, mengakses properti pengguna, menautkan, memperbarui dan menghapus akun, mengatur ulang kata sandi, dan banyak lagi tanpa terikat ke UI tetap. Jika mau, Anda dapat secara manual membangun seluruh alur masuk dan pengalaman Anda sendiri di atas API ini.

  • Manajemen sesi untuk aplikasi seluler

    Dengan Identity Toolkit, aplikasi membuat status sesinya sendiri berdasarkan peristiwa autentikasi awal dari Identity Toolkit. Firebase Auth menggunakan layanan backend yang mengambil token penyegaran, dibuat dari peristiwa otentikasi, dan menukarnya dengan token akses selama satu jam untuk Android, iOS dan JavaScript. Saat pengguna mengubah sandi mereka, token penyegaran tidak lagi dapat membuat token akses baru, sehingga menonaktifkan akses hingga pengguna mengautentikasi ulang pada perangkat itu.

  • Autentikasi anonim dan GitHub

    Firebase Authentication mendukung dua jenis autentikasi baru: GitHub dan anonim. Masuk anonim dapat digunakan untuk membuat ID pengguna unik tanpa mengharuskan pengguna melalui proses masuk atau pendaftaran apa pun. Dengan pengguna anonim, Anda sekarang dapat melakukan panggilan API yang diautentikasi, seperti yang Anda lakukan dengan pengguna biasa. Ketika pengguna memutuskan untuk mendaftar sebuah akun, semua aktivitas dipertahankan dengan ID pengguna yang sama. Ini bagus untuk situasi seperti keranjang belanja sisi server atau aplikasi apa pun di mana Anda ingin melibatkan pengguna sebelum mengirim mereka melalui alur pendaftaran.

Perbedaan Fitur

Beberapa fitur Identity Toolkit saat ini tidak tersedia di Firebase Authentication, sementara fitur lainnya telah didesain ulang dan berfungsi secara berbeda. Anda dapat memilih untuk tidak segera bermigrasi jika fitur ini penting untuk aplikasi Anda. Dalam banyak kasus, fitur ini mungkin tidak penting untuk aplikasi Anda atau mungkin ada penggantian mudah yang memungkinkan Anda melanjutkan migrasi.

Perbedaan sisi server

Layanan Identity Toolkit inti dengan REST API yang mendasarinya, logika validasi akun, dan database pengguna utama hanya mengalami pembaruan kecil. Tetapi beberapa fitur dan cara Anda mengintegrasikan Firebase Authentication ke dalam layanan Anda telah berubah.

  • Penyedia Identitas

    Paypal dan AOL tidak didukung. Pengguna dengan akun dari IDP ini masih dapat masuk ke aplikasi Anda dengan alur pemulihan sandi dan menyiapkan sandi untuk akun mereka.

  • Perpustakaan server

    Saat ini, ada Firebase admin SDK yang tersedia untuk Java, Node.js, Python, Go, dan C #.

  • Email manajemen akun

    Penyetelan ulang kata sandi, verifikasi email, dan pesan perubahan email dapat dilakukan oleh Firebase atau dari server email pengembang sendiri. Saat ini, template email Firebase hanya menawarkan penyesuaian terbatas.

  • Konfirmasi perubahan alamat email

    Di Identity Toolkit, saat pengguna memutuskan untuk mengubah alamat emailnya, ia mengirimkan email ke alamat baru yang memiliki link untuk melanjutkan alur perubahan alamat email.

    Firebase mengonfirmasi perubahan alamat email dengan mengirimkan email pembatalan ke alamat email lama dengan tautan untuk mengembalikan perubahan tersebut.

  • Peluncuran IDP

    Identity Toolkit memiliki kemampuan untuk menambahkan penyedia identitas ke sistem masuk Anda secara bertahap, sehingga Anda dapat bereksperimen dengan dampak pada permintaan dukungan Anda. Fitur ini telah dihapus di Firebase Authentication.

Perbedaan sisi klien

Di Firebase, fitur yang disediakan oleh Google Identity Toolkit dibagi menjadi dua komponen:

  • Firebase Authentication SDK

    Di Firebase Authentication, fungsionalitas yang disediakan oleh REST API Identity Toolkit telah dikemas dalam SDK klien yang tersedia untuk Android, iOS, dan JavaScript. Anda dapat menggunakan SDK untuk masuk dan mendaftarkan pengguna; mengakses informasi profil pengguna; menautkan, memperbarui, dan menghapus akun; dan menyetel ulang sandi menggunakan SDK klien alih-alih berkomunikasi dengan layanan back end melalui panggilan REST.

  • FirebaseUI Auth

    Semua alur UI yang mengelola proses masuk, pendaftaran, pemulihan sandi, dan penautan akun telah dibuat ulang menggunakan Frebase Authentication SDK. Mereka tersedia sebagai SDK sumber terbuka untuk iOS dan Android agar Anda dapat sepenuhnya menyesuaikan aliran dengan cara yang tidak mungkin dilakukan dengan Identity Toolkit.

Perbedaan tambahan meliputi:

  • Sesi dan migrasi

    Karena sesi dikelola secara berbeda di Identity Toolkit dan Firebase Authentication, sesi pengguna Anda yang sudah ada akan dihentikan setelah mengupgrade SDK, dan pengguna Anda harus login lagi.

Sebelum kamu memulai

Sebelum Anda dapat bermigrasi dari Identity Toolkit ke Firebase Authentication, Anda harus melakukannya

  1. Buka konsol Firebase , klik Impor Proyek Google , dan pilih proyek Identity Toolkit Anda.

  2. Klik > Izin untuk membuka halaman IAM & Admin.

  3. Buka halaman Akun layanan . Di sini Anda dapat melihat akun layanan yang sebelumnya Anda konfigurasikan untuk Identity Toolkit.

  4. Di samping akun layanan, klik > Buat kunci . Kemudian, dalam dialog Buat kunci pribadi , setel jenis kunci ke JSON dan klik Buat . File JSON yang berisi kredensial akun layanan Anda didownload untuk Anda. Anda akan membutuhkan ini untuk menginisialisasi SDK di langkah berikutnya.

  5. Kembali ke konsol Firebase . Di bagian Auth, buka halaman Template Email . Di halaman ini, sesuaikan template email aplikasi Anda.

    Di Identity Toolkit, saat pengguna menyetel ulang sandi, mengubah alamat email, dan memverifikasi email alamat email mereka, Anda perlu mendapatkan kode OOB dari server Identity Toolkit, lalu mengirimkan kode tersebut ke pengguna melalui email. Firebase mengirimkan email berdasarkan template yang Anda konfigurasikan tanpa perlu tindakan tambahan.

  6. Opsional : Jika Anda perlu mengakses layanan Firebase di server Anda, instal SDK Firebase.

    1. Anda dapat menginstal modul Firebase Node.js dengan npm :

      $ npm init
      $ npm install --save firebase-admin
      
    2. Di kode Anda, Anda dapat mengakses Firebase menggunakan:

      var admin = require('firebase-admin');
      var app = admin.initializeApp({
        credential: admin.credential.cert('path/to/serviceAccountCredentials.json')
      });
      

Selanjutnya, selesaikan langkah migrasi untuk platform aplikasi Anda: Android , iOS , web .

Server dan JavaScript

Perubahan penting

Ada sejumlah perbedaan tambahan dalam implementasi web Firebase dari Identity Toolkit.

  • Manajemen sesi web

    Sebelumnya, saat pengguna mengautentikasi menggunakan widget Identity Toolkit , cookie telah ditetapkan untuk pengguna yang digunakan untuk mem-bootstrap sesi . Cookie ini memiliki masa hidup dua minggu dan digunakan untuk memungkinkan pengguna menggunakan widget manajemen akun untuk mengubah kata sandi dan alamat email. Beberapa situs menggunakan cookie ini untuk mengotentikasi semua permintaan halaman lain di situs. Situs lain menggunakan cookie untuk membuat cookie mereka sendiri melalui sistem manajemen cookie kerangka kerja mereka.

    SDK klien Firebase sekarang mengelola token ID Firebase dan bekerja dengan backend Firebase Authentication untuk menjaga sesi tetap segar. Sesi backend kedaluwarsa ketika perubahan akun penting (seperti perubahan kata sandi pengguna) telah terjadi. Token ID Firebase tidak secara otomatis disetel sebagai cookie di klien web dan hanya memiliki masa pakai satu jam. Kecuali Anda ingin sesi hanya satu jam, token ID Firebase tidak sesuai untuk digunakan sebagai cookie untuk memvalidasi semua permintaan halaman Anda. Sebagai gantinya, Anda perlu menyiapkan listener saat pengguna login , mendapatkan token ID Firebase , memvalidasi token tersebut , dan membuat cookie Anda sendiri melalui sistem pengelolaan cookie framework Anda.

    Anda perlu mengatur umur sesi cookie Anda berdasarkan kebutuhan keamanan aplikasi Anda.

  • Alur masuk web

    Sebelumnya, pengguna dialihkan ke accountchooser.com saat masuk dimulai untuk mempelajari pengenal apa yang ingin digunakan pengguna. Alur Firebase Auth UI sekarang dimulai dengan daftar metode masuk, termasuk opsi email yang menuju ke accountchooser.com untuk web dan menggunakan API hintRequest di Android. Selain itu, alamat email tidak lagi diperlukan di Firebase UI. Ini akan memudahkan untuk mendukung pengguna anonim, pengguna autentikasi khusus, atau pengguna dari penyedia yang tidak memerlukan alamat email.

  • Widget manajemen akun

    Widget ini menyediakan UI bagi pengguna untuk mengubah alamat email, mengubah sandi, atau memutuskan tautan akun mereka dari penyedia identitas. Saat ini sedang dalam pengembangan.

  • Tombol / widget masuk

    Widget seperti tombol masuk dan kartu pengguna tidak lagi disediakan. Mereka dapat dibuat dengan sangat mudah menggunakan Firebase Authentication API.

  • Tidak ada signOutUrl

    Anda perlu memanggil firebase.auth.signOut() dan menangani callback.

  • Tidak ada oobActionUrl

    Pengiriman email sekarang ditangani oleh Firebase dan dikonfigurasi di konsol Firebase.

  • Kustomisasi CSS

    FirebaseUI menggunakan gaya Material Design Lite , yang secara dinamis menambahkan animasi Desain Material.

Langkah 1: Ubah Kode Server

  1. Jika server Anda mengandalkan token Identity Toolkit (berlaku selama dua minggu) untuk mengelola sesi pengguna web, Anda perlu mengonversi server untuk menggunakan cookie sesinya sendiri.

    1. Terapkan titik akhir untuk memvalidasi token ID Firebase dan menyetel cookie sesi untuk pengguna. Aplikasi klien mengirimkan token ID Firebase ke titik akhir ini.
    2. Jika permintaan masuk berisi cookie sesi Anda sendiri, Anda dapat menganggap pengguna tersebut diautentikasi. Jika tidak, perlakukan permintaan tersebut sebagai tidak diautentikasi.
    3. Jika Anda tidak ingin pengguna Anda kehilangan sesi login mereka yang sudah ada, Anda harus menunggu selama dua minggu sampai semua token Identity Toolkit kedaluwarsa, atau lakukan juga validasi token ganda untuk aplikasi web Anda seperti yang dijelaskan di bawah pada langkah 3.
  2. Selanjutnya, karena token Firebase berbeda dengan token Identity Toolkit, Anda harus memperbarui logika validasi token Anda. Instal Firebase Server SDK ke server Anda; atau, jika Anda menggunakan bahasa yang tidak didukung oleh Firebase Server SDK, unduh pustaka validasi token JWT untuk lingkungan Anda dan validasi token dengan benar .

  3. Saat pertama kali melakukan pembaruan di atas, Anda mungkin masih memiliki jalur kode yang mengandalkan token Identity Toolkit. Jika Anda memiliki aplikasi iOS atau Android, pengguna perlu meningkatkan ke versi aplikasi yang baru agar jalur kode baru berfungsi. Jika Anda tidak ingin memaksa pengguna untuk mengupdate aplikasi, Anda dapat menambahkan logika validasi server tambahan yang memeriksa token dan menentukan apakah perlu menggunakan Firebase SDK atau Identity Toolkit SDK untuk memvalidasi token. Jika Anda hanya memiliki aplikasi web, semua permintaan otentikasi baru akan dialihkan ke Firebase dan, oleh karena itu, Anda hanya perlu menggunakan metode verifikasi token Firebase.

Lihat Referensi API Web Firebase .

Langkah 2: Perbarui HTML Anda

  1. Tambahkan kode inisialisasi Firebase ke aplikasi Anda:

    1. Buka proyek Anda di konsol Firebase .
    2. Di halaman Ringkasan, klik Tambahkan Aplikasi , lalu klik Tambahkan Firebase ke aplikasi web Anda . Cuplikan kode yang menginisialisasi Firebase ditampilkan.
    3. Salin dan tempel cuplikan inisialisasi ke halaman web Anda.
  2. Tambahkan FirebaseUI Auth ke aplikasi Anda:

    <script src="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.js"></script>
    <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.css" />
    <!-- *******************************************************************************************
       * TODO(DEVELOPER): Paste the initialization snippet from:
       * Firebase Console > Overview > Add Firebase to your web app. *
       ***************************************************************************************** -->
    <script type="text/javascript">
      // FirebaseUI config.
      var uiConfig = {
        'signInSuccessUrl': '<url-to-redirect-to-on-success>',
        'signInOptions': [
          // Leave the lines as is for the providers you want to offer your users.
          firebase.auth.GoogleAuthProvider.PROVIDER_ID,
          firebase.auth.FacebookAuthProvider.PROVIDER_ID,
          firebase.auth.TwitterAuthProvider.PROVIDER_ID,
          firebase.auth.GithubAuthProvider.PROVIDER_ID,
          firebase.auth.EmailAuthProvider.PROVIDER_ID
        ],
        // Terms of service url.
        'tosUrl': '<your-tos-url>',
      };
    
      // Initialize the FirebaseUI Widget using Firebase.
      var ui = new firebaseui.auth.AuthUI(firebase.auth());
      // The start method will wait until the DOM is loaded.
      ui.start('#firebaseui-auth-container', uiConfig);
    </script>
    
  3. Hapus Identity Toolkit SDK dari aplikasi Anda.

  4. Jika Anda mengandalkan token ID Identity Toolkit untuk pengelolaan sesi, Anda harus melakukan perubahan berikut di sisi klien:

    1. Setelah berhasil masuk dengan Firebase, dapatkan token ID Firebase dengan memanggil firebase.auth().currentUser.getToken() .

    2. Kirim token ID Firebase ke server backend, validasi, dan terbitkan cookie sesi Anda sendiri.

      Jangan hanya mengandalkan cookie sesi saat melakukan operasi sensitif atau mengirim permintaan edit yang diautentikasi ke server Anda. Anda perlu memberikan perlindungan pemalsuan permintaan lintas situs (CSRF) tambahan.

      Jika framework Anda tidak memberikan perlindungan CSRF, salah satu cara untuk mencegah serangan adalah dengan mendapatkan token ID Firebase untuk pengguna yang masuk dengan getToken() dan menyertakan token tersebut dengan setiap permintaan (cookie sesi juga akan dikirim secara default ). Anda kemudian akan memvalidasi token tersebut menggunakan SDK server Firebase selain pemeriksaan cookie sesi, yang telah diselesaikan oleh kerangka kerja backend Anda. Ini akan mempersulit serangan CSRF untuk berhasil, karena token ID Firebase hanya disimpan menggunakan penyimpanan web dan tidak pernah dalam cookie.

    3. Token Identity Toolkit berlaku selama dua minggu. Anda mungkin ingin terus menerbitkan token dalam dua minggu terakhir, atau Anda mungkin ingin memperpanjang atau mempersingkatnya berdasarkan persyaratan keamanan aplikasi Anda. Saat pengguna logout, hapus cookie sesi.

Langkah 3: Perbarui URL pengalihan IDP

  1. Di konsol Firebase, buka bagian Autentikasi dan klik tab Metode Masuk .

  2. Untuk setiap penyedia login federasi yang Anda dukung, lakukan hal berikut:

    1. Klik nama penyedia masuk.
    2. Salin URI pengalihan OAuth.
    3. Di konsol developer penyedia login, perbarui URI pengalihan OAuth.

Android

Langkah 1: Tambahkan Firebase ke aplikasi Anda

  1. Buka Firebase console , dan pilih proyek Identity Toolkit Anda, yang sudah Anda impor.

  2. Di halaman Ringkasan, klik Tambahkan Aplikasi , lalu klik Tambahkan Firebase ke aplikasi Android Anda . Dalam dialog Tambahkan Firebase, berikan nama paket aplikasi Anda dan sidik jari sertifikat penandatanganan dan klik Tambahkan Aplikasi . File konfigurasi google-services.json kemudian diunduh ke komputer Anda.

  3. Salin file konfigurasi ke direktori root modul aplikasi Android Anda. File konfigurasi ini berisi proyek dan informasi klien Google OAuth.

  4. Dalam file build.gradle tingkat proyek Anda ( <var>your-project</var>/build.gradle ), tentukan nama paket aplikasi Anda di bagian defaultConfig :

    defaultConfig {
       …..
      applicationId "com.your-app"
    }
    
  5. Juga di file build.gradle level Project Anda, tambahkan dependensi untuk menyertakan plugin layanan google:

    buildscript {
     dependencies {
       // Add this line
       classpath 'com.google.gms:google-services:3.0.0'
     }
    }
    
  6. Dalam file build.gradle level aplikasi aplikasi Anda ( <var>my-project</var>/<var>app-module</var>/build.gradle ), tambahkan baris berikut ke bawah untuk mengaktifkan google- plugin layanan:

    // Add to the bottom of the file
    apply plugin: 'com.google.gms.google-services'
    

    Plugin google-services menggunakan file google-services.json untuk mengonfigurasi aplikasi Anda agar menggunakan Firebase.

  7. Juga di file build.gradle level build.gradle , tambahkan dependensi Firebase Authentication:

    compile 'com.google.firebase:firebase-auth:21.0.0'
    compile 'com.google.android.gms:play-services-auth:19.0.0'
    

Langkah 2: Hapus Identity Toolkit SDK

  1. Hapus konfigurasi Identity Toolkit dari file AndroidManifest.xml . Informasi ini disertakan dalam file google-service.json dan dimuat oleh plugin layanan google.
  2. Hapus Identity Toolkit SDK dari aplikasi Anda.

Langkah 3: Tambahkan FirebaseUI ke aplikasi Anda

  1. Tambahkan FirebaseUI Auth ke aplikasi Anda.

  2. Di aplikasi Anda, ganti panggilan ke Identity Toolkit SDK dengan panggilan ke FirebaseUI.

iOS

Langkah 1: Tambahkan Firebase ke aplikasi Anda

  1. Tambahkan Firebase SDK ke aplikasi Anda dengan menjalankan perintah berikut:

    $ cd your-project directory
    $ pod init
    $ pod 'Firebase'
    
  2. Buka Firebase console , dan pilih proyek Identity Toolkit Anda, yang sudah Anda impor.

  3. Di halaman Ringkasan, klik Tambahkan Aplikasi , lalu klik Tambahkan Firebase ke aplikasi iOS Anda . Dalam dialog Tambahkan Firebase, berikan ID paket aplikasi dan ID App Store Anda, lalu klik Tambahkan Aplikasi . File konfigurasi GoogleService-Info.plist kemudian diunduh ke komputer Anda. Jika Anda memiliki beberapa ID paket dalam proyek Anda, setiap ID paket harus terhubung di konsol Firebase sehingga dapat memiliki file GoogleService-Info.plist .

  4. Salin file konfigurasi ke root proyek Xcode Anda dan tambahkan ke semua target.

Langkah 2: Hapus Identity Toolkit SDK

  1. Hapus GoogleIdentityToolkit dari GoogleIdentityToolkit aplikasi Anda.
  2. Jalankan perintah pod install .

Langkah 3: Tambahkan FirebaseUI ke aplikasi Anda

  1. Tambahkan FirebaseUI Auth ke aplikasi Anda.

  2. Di aplikasi Anda, ganti panggilan ke Identity Toolkit SDK dengan panggilan ke FirebaseUI.