กู้คืนข้อมูลเข้าสู่ระบบ

ฟีเจอร์กู้คืนข้อมูลเข้าสู่ระบบของเครื่องมือจัดการข้อมูลเข้าสู่ระบบช่วยให้ผู้ใช้กู้คืนบัญชีแอปได้เมื่อตั้งค่าอุปกรณ์ใหม่ API นี้อยู่ในเวอร์ชันตัวอย่างสำหรับนักพัฒนาแอปและพร้อมใช้งานบนอุปกรณ์ทุกเครื่องที่ใช้ Android 9 ขึ้นไปและบริการ Google Play (GMS) เวอร์ชัน 242200000 ขึ้นไป ประโยชน์ของฟีเจอร์กู้คืนข้อมูลเข้าสู่ระบบมีดังนี้

  • ประสบการณ์การใช้งานที่ราบรื่นสำหรับผู้ใช้: ผู้ใช้สามารถกู้คืนบัญชีแอปได้โดยไม่ต้องลงชื่อเข้าใช้แต่ละแอปด้วยตนเอง
  • การมีส่วนร่วมของผู้ใช้เพิ่มขึ้น: ผู้ใช้มีแนวโน้มที่จะใช้แอปต่อไปหากสามารถกู้คืนบัญชีเมื่อตั้งค่าอุปกรณ์ใหม่
  • ลดความพยายามในการพัฒนา: ฟีเจอร์กู้คืนข้อมูลเข้าสู่ระบบผสานรวมกับเครื่องมือจัดการข้อมูลเข้าสู่ระบบแล้ว นักพัฒนาแอปที่รองรับพาสคีย์อยู่แล้วจึงเพิ่มความสามารถในการกู้คืนข้อมูลเข้าสู่ระบบได้

วิธีการทำงาน

คุณสามารถใช้ "กู้คืนข้อมูลเข้าสู่ระบบ" เพื่อสร้าง รับ และล้างข้อมูลเข้าสู่ระบบที่เกี่ยวข้อง

  1. สร้างข้อมูลเข้าสู่ระบบสำหรับการกู้คืน: เมื่อผู้ใช้ลงชื่อเข้าใช้แอป ให้สร้างข้อมูลเข้าสู่ระบบสำหรับการกู้คืนที่เชื่อมโยงกับบัญชีของผู้ใช้ ระบบจะจัดเก็บข้อมูลเข้าสู่ระบบนี้ไว้ในพื้นที่เก็บข้อมูลในเครื่องและซิงค์กับระบบคลาวด์หากผู้ใช้เปิดใช้การสำรองข้อมูลของ Google และการเข้ารหัสจากต้นทางถึงปลายทางพร้อมใช้งาน (แอปสามารถเลือกไม่ใช้การซิงค์กับระบบคลาวด์ได้)
  2. รับข้อมูลเข้าสู่ระบบสำหรับการกู้คืน: เมื่อผู้ใช้ตั้งค่าอุปกรณ์ใหม่ แอปของคุณจะขอข้อมูลเข้าสู่ระบบสำหรับการกู้คืนจากตัวจัดการข้อมูลเข้าสู่ระบบได้ ซึ่งจะช่วยให้คุณลงชื่อเข้าใช้ผู้ใช้โดยอัตโนมัติได้โดยไม่ต้องป้อนข้อมูลใดๆ เพิ่มเติม
  3. ล้างข้อมูลเข้าสู่ระบบสำหรับการกู้คืน: เมื่อผู้ใช้ออกจากระบบแอป คุณควรลบข้อมูลเข้าสู่ระบบสำหรับการกู้คืนที่เกี่ยวข้อง

ฟีเจอร์กู้คืนข้อมูลเข้าสู่ระบบผสานรวมกับระบบแบ็กเอนด์ที่ใช้พาสคีย์อยู่แล้วได้อย่างราบรื่น ความเข้ากันได้นี้มาจากข้อเท็จจริงที่ว่าทั้งพาสคีย์และคีย์การกู้คืน (ประเภทข้อมูลเข้าสู่ระบบที่ฟีเจอร์กู้คืนข้อมูลเข้าสู่ระบบใช้) เป็นไปตามข้อกำหนดทางเทคนิคพื้นฐานเดียวกัน การปรับให้สอดคล้องกันนี้ช่วยให้มั่นใจได้ว่ากระบวนการกู้คืนข้อมูลเข้าสู่ระบบจะดึงข้อมูลและคืนสิทธิข้อมูลเข้าสู่ระบบของผู้ใช้ที่จัดเก็บไว้ในระบบที่เปิดใช้พาสคีย์ได้อย่างมีประสิทธิภาพ ซึ่งมอบประสบการณ์การใช้งานที่สอดคล้องกันและใช้งานง่ายในแพลตฟอร์มและวิธีการตรวจสอบสิทธิ์ต่างๆ

Bottom Sheet ของเครื่องมือจัดการข้อมูลเข้าสู่ระบบ
รูปที่ 1 แผนภาพที่แสดงการกู้คืนข้อมูลแอปไปยังอุปกรณ์เครื่องใหม่โดยใช้ข้อมูลเข้าสู่ระบบสำหรับการกู้คืน ซึ่งรวมถึงการสร้างข้อมูลเข้าสู่ระบบ เริ่มต้นขั้นตอนการกู้คืน และการลงชื่อเข้าใช้ของผู้ใช้โดยอัตโนมัติ

การใช้งาน

Restore Credentials API พร้อมใช้งานผ่านไลบรารี Jetpack ของตัวจัดการข้อมูลเข้าสู่ระบบ หากต้องการเริ่มต้นใช้งาน ให้ทำตามขั้นตอนต่อไปนี้

  1. เพิ่มทรัพยากร Dependency ของเครื่องมือจัดการข้อมูลเข้าสู่ระบบลงในโปรเจ็กต์

    // build.gradle.kts
    implementation("androidx.credentials:credentials:1.5.0-alpha03")
    
  2. สร้างออบเจ็กต์ CreateRestoreCredentialRequest

  3. เรียกใช้เมธอด createCredential() บนออบเจ็กต์ 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)
    

    ข้อมูลเข้าสู่ระบบสำหรับการกู้คืนที่สร้างขึ้นนี้เป็นข้อมูลเข้าสู่ระบบ WebAuthn ประเภทหนึ่งและเรียกว่าคีย์สำหรับการกู้คืน

  4. เมื่อผู้ใช้ตั้งค่าอุปกรณ์ใหม่ ให้เรียกใช้เมธอด getCredential() ในออบเจ็กต์ 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. เมื่อผู้ใช้ออกจากระบบแอป ให้เรียกใช้clearCredentialState()วิธีในออบเจ็กต์ 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)
    

หากคุณใช้ตัวแทนการสำรองข้อมูล ให้ทำตามส่วน getCredential ภายในการเรียกกลับ onRestore วิธีนี้ช่วยให้มั่นใจได้ว่าระบบจะกู้คืนข้อมูลเข้าสู่ระบบของแอปทันทีหลังจากกู้คืนข้อมูลแอป