Blok Toko

Banyak pengguna masih mengelola kredensial mereka sendiri saat menyiapkan perangkat Android baru. Proses manual ini dapat menjadi tantangan dan sering kali menghasilkan pengalaman pengguna yang buruk. Blok Toko API, perpustakaan didukung oleh layanan Google Play , terlihat untuk memecahkan ini dengan memberikan cara untuk aplikasi untuk menyimpan kredensial pengguna tanpa kompleksitas atau keamanan risiko yang terkait dengan menyimpan password pengguna.

Block Store API memungkinkan aplikasi Anda menyimpan kredensial pengguna yang nantinya dapat diambil untuk mengautentikasi ulang pengguna di perangkat baru. Ini membantu memberikan pengalaman yang lebih lancar bagi pengguna, karena mereka tidak perlu melihat layar masuk saat meluncurkan aplikasi Anda untuk pertama kali di perangkat baru.

Manfaat menggunakan Block Store antara lain sebagai berikut:

  • Solusi penyimpanan kredensial terenkripsi untuk pengembang. Kredensial dienkripsi ujung-ke-ujung jika memungkinkan.
  • Simpan token alih-alih nama pengguna dan kata sandi.
  • Hilangkan gesekan dari alur masuk.
  • Menyelamatkan pengguna dari beban mengelola kata sandi yang rumit.
  • Google memverifikasi identitas pengguna.

Sebelum kamu memulai

Konfigurasikan aplikasi Anda

  1. Dalam proyek-tingkat build.gradle berkas, termasuk repositori Maven Google di kedua Anda buildscript dan allprojects bagian:

    buildscript {
        repositories {
            google()
        }
    }
    
    allprojects {
        repositories {
            google()
        }
    }
    
  2. Tambahkan dependensi untuk API Blok Store untuk berkas Gradle aplikasi-tingkat modul Anda, yang biasanya app/build.gradle :

    dependencies {
      implementation 'com.google.android.gms:play-services-auth-blockstore:16.0.2'
    }
    

Bagaimana itu bekerja

Saat pengguna masuk ke aplikasi Anda, Anda dapat menyimpan token autentikasi yang Anda buat untuk pengguna tersebut ke Block Store. Hal ini dilakukan dengan memanggil setBytes() pada sebuah instance dari StoreBytesData.Builder untuk menyimpan kredensial pengguna untuk perangkat sumber. Setelah Anda menyimpan token dengan Block Store, token dienkripsi dan disimpan secara lokal di perangkat.

Cuplikan kode berikut menunjukkan cara menyimpan token autentikasi:

val client = Blockstore.getClient(this)
val data = StoreBytesData.Builder()
        .setBytes(/* BYTE_ARRAY */)
        .build()
client.storeBytes(data)
        .addOnSuccessListener{ result ->
            Log.d(TAG, "Stored: ${result.getBytesStored()}")
        }

Kemudian, saat pengguna melewati alur pemulihan perangkat ke perangkat di perangkat baru, layanan Google Play memverifikasi pengguna terlebih dahulu, lalu mengambil data Block Store Anda. Pengguna telah setuju untuk memulihkan data aplikasi Anda sebagai bagian dari alur pemulihan, jadi tidak diperlukan persetujuan tambahan. Ketika pengguna membuka aplikasi Anda, Anda dapat meminta token Anda dari Blok Toko dengan memanggil retrieveBytes() . Token yang diambil kemudian dapat digunakan untuk membuat pengguna tetap masuk di perangkat baru.

val client = Blockstore.getClient(this)
client.retrieveBytes()
        .addOnSuccessListener { result ->
            Log.d(TAG, "Retrieved: ${String(result)}")
}