Khôi phục thông tin xác thực

Tính năng Khôi phục thông tin xác thực của Trình quản lý thông tin xác thực cho phép người dùng khôi phục tài khoản ứng dụng của họ khi thiết lập thiết bị mới. API này đang ở chế độ bản dùng thử cho nhà phát triển và có trên tất cả thiết bị chạy Android 9 trở lên và Dịch vụ Google Play (GMS) Core phiên bản 242200000 trở lên. Sau đây là một số lợi ích của tính năng Khôi phục thông tin xác thực:

  • Trải nghiệm liền mạch cho người dùng: Người dùng có thể khôi phục tài khoản ứng dụng của họ mà không cần đăng nhập theo cách thủ công vào từng ứng dụng.
  • Tăng mức độ tương tác của người dùng: Người dùng có nhiều khả năng tiếp tục sử dụng ứng dụng của bạn hơn nếu họ có thể khôi phục tài khoản của mình khi thiết lập thiết bị mới.
  • Giảm nỗ lực phát triển: tính năng Khôi phục thông tin xác thực được tích hợp với Trình quản lý thông tin xác thực, vì vậy, các nhà phát triển đã hỗ trợ khoá truy cập có thể thêm các tính năng khôi phục thông tin xác thực.

Cách hoạt động

Bạn có thể sử dụng tính năng Khôi phục thông tin xác thực để tạo, nhận và xoá thông tin xác thực liên quan.

  1. Tạo thông tin khôi phục thông tin đăng nhập: Khi người dùng đăng nhập vào ứng dụng của bạn, hãy tạo Khôi phục thông tin đăng nhập liên kết với tài khoản của họ. Thông tin xác thực này được lưu trữ cục bộ và đồng bộ hoá với đám mây nếu người dùng đã bật tính năng Sao lưu của Google và có thể sử dụng tính năng mã hoá hai đầu (các ứng dụng có thể chọn không đồng bộ hoá với đám mây)
  2. Lấy thông tin Khôi phục thông tin đăng nhập: Khi người dùng thiết lập một thiết bị mới, ứng dụng của bạn có thể yêu cầu Khôi phục thông tin xác thực từ Trình quản lý thông tin xác thực. Điều này cho phép bạn tự động đăng nhập người dùng mà không cần thông tin đầu vào khác.
  3. Xoá thông tin đăng nhập để khôi phục thông tin đăng nhập: Khi người dùng đăng xuất khỏi ứng dụng, bạn phải xoá thông tin đăng nhập "Khôi phục thông tin đăng nhập" được liên kết.

Tính năng Khôi phục thông tin xác thực có thể tích hợp liền mạch với các hệ thống phụ trợ đã triển khai khoá truy cập. Khả năng tương thích này xuất phát từ thực tế cả khoá truy cập và khoá khôi phục (loại thông tin đăng nhập do Tính năng Khôi phục thông tin đăng nhập) tuân thủ cùng một kỹ thuật cơ bản thông số kỹ thuật. Việc điều chỉnh này đảm bảo rằng quy trình Khôi phục thông tin xác thực có thể truy xuất và khôi phục hiệu quả thông tin xác thực của người dùng được lưu trữ trong các hệ thống hỗ trợ khoá truy cập, mang lại trải nghiệm nhất quán và thân thiện với người dùng trên nhiều nền tảng và phương thức xác thực.

Bảng dưới cùng của Trình quản lý thông tin xác thực
Hình 1. Sơ đồ mô tả việc khôi phục dữ liệu ứng dụng vào thiết bị mới bằng cách sử dụng thông tin đăng nhập khôi phục, bao gồm cả việc tạo thông tin đăng nhập, bắt đầu quy trình khôi phục và tự động đăng nhập cho người dùng

Triển khai

API Khôi phục thông tin xác thực được cung cấp thông qua Jetpack Trình quản lý thông tin xác thực thư viện của bạn. Để bắt đầu, hãy làm theo các bước sau:

  1. Thêm phần phụ thuộc Trình quản lý thông tin xác thực vào dự án của bạn.

    // build.gradle.kts
    implementation("androidx.credentials:credentials:1.5.0-alpha03")
    
  2. Tạo đối tượng CreateRestoreCredentialRequest.

  3. Gọi phương thức createCredential() trên đối tượng CredentialManager.

    val credentialManager = CredentialManager.create(context)
    
    // On a successful authentication create a Restore Key
    // Pass in the context and CreateRestoreCredentialRequest object
    val response = credentialManager.createCredential(context, createRestoreRequest)
    

    Thông tin đăng nhập khôi phục được tạo này là một loại khoá truy cập và cũng được biết là làm khoá truy cập khôi phục hoặc khoá khôi phục.

  4. Khi người dùng thiết lập một thiết bị mới, hãy gọi phương thức getCredential() trên đối tượng CredentialManager.

    // Fetch the Authentication JSON from server
    val authenticationJson = ...
    
    // Create the GetRestoreCredentialRequest object
    val options = GetRestoreCredentialOption(authenticationJson)
    val getRequest = GetCredentialRequest(Immutablelist.of(options))
    
    // The restore key can be fetched in two scenarios to
    // 1. On the first launch of app on the device, fetch the Restore Key
    // 2. In the onRestore callback (if the app implements the Backup Agent)
    val response = credentialManager.getCredential(context, getRequest)
    
  5. Khi người dùng đăng xuất khỏi ứng dụng, hãy gọi phương thức clearCredentialState() trên đối tượng CredentialManager.

    // Create a ClearCredentialStateRequest object
    val clearRequest = ClearCredentialStateRequest(TYPE_CLEAR_RESTORE_CREDENTIAL)
    
    // On user log-out, clear the restore key
    val response = credentialManager.clearCredentialState(clearRequest)
    

Nếu bạn đang sử dụng tác nhân sao lưu, hãy thực hiện phần getCredential trong lệnh gọi lại onRestore. Việc này giúp đảm bảo rằng thông tin đăng nhập của ứng dụng sẽ được khôi phục ngay sau khi dữ liệu ứng dụng được khôi phục.