Chặn cửa hàng

Nhiều người dùng vẫn quản lý thông tin đăng nhập của riêng họ khi thiết lập một thiết bị Android mới. Quy trình thủ công này có thể trở nên khó khăn và thường dẫn đến trải nghiệm người dùng kém. The Block API lưu trữ, thư viện cung cấp bởi dịch vụ Google Play , vẻ bề ngoài để giải quyết việc này bằng cách cung cấp một cách cho các ứng dụng để lưu thông tin người dùng mà không cần sự phức tạp, an ninh nguy cơ liên quan đến lưu mật khẩu người dùng.

API Block Store cho phép ứng dụng của bạn lưu trữ thông tin đăng nhập của người dùng mà sau này ứng dụng có thể truy xuất để xác thực lại người dùng trên một thiết bị mới. Điều này giúp cung cấp trải nghiệm liền mạch hơn cho người dùng vì họ không cần phải nhìn thấy màn hình đăng nhập khi khởi chạy ứng dụng của bạn lần đầu tiên trên thiết bị mới.

Các lợi ích khi sử dụng Block Store bao gồm:

  • Giải pháp lưu trữ thông tin xác thực được mã hóa dành cho các nhà phát triển. Thông tin xác thực được mã hóa đầu cuối khi có thể.
  • Lưu mã thông báo thay vì tên người dùng và mật khẩu.
  • Loại bỏ ma sát khỏi quy trình đăng nhập.
  • Giúp người dùng thoát khỏi gánh nặng quản lý mật khẩu phức tạp.
  • Google xác minh danh tính của người dùng.

Trước khi bắt đầu

Định cấu hình ứng dụng của bạn

  1. Trong dự án cấp của bạn build.gradle tập tin, bao gồm kho Maven của Google trong cả hai bạn buildscriptallprojects phần:

    buildscript {
        repositories {
            google()
        }
    }
    
    allprojects {
        repositories {
            google()
        }
    }
    
  2. Thêm sự phụ thuộc cho các API Khối Store để ứng dụng cấp tập tin Gradle của mô-đun của bạn, mà thường là app/build.gradle :

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

Làm thế nào nó hoạt động

Khi người dùng đăng nhập vào ứng dụng của bạn, bạn có thể lưu mã xác thực mà bạn tạo cho người dùng đó vào Block Store. Này được thực hiện bằng cách gọi setBytes() trên một thể hiện của StoreBytesData.Builder để lưu trữ thông tin của người dùng cho các thiết bị nguồn. Sau khi bạn lưu mã thông báo bằng Block Store, mã thông báo được mã hóa và lưu trữ cục bộ trên thiết bị.

Đoạn mã sau cho biết cách lưu mã xác thực:

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

Sau đó, khi người dùng thực hiện quy trình khôi phục thiết bị với thiết bị trên một thiết bị mới, trước tiên, các dịch vụ của Google Play sẽ xác minh người dùng đó, sau đó truy xuất dữ liệu Block Store của bạn. Người dùng đã đồng ý khôi phục dữ liệu ứng dụng của bạn như một phần của quy trình khôi phục, vì vậy không cần thêm sự đồng ý nào. Khi người dùng mở ứng dụng, bạn có thể yêu cầu mã thông báo của từ Lô hàng bằng cách gọi retrieveBytes() . Sau đó, mã thông báo đã truy xuất có thể được sử dụng để giữ cho người dùng đăng nhập trên thiết bị mới.

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