استعادة بيانات اعتماد التطبيق عند إعداد جهاز جديد

تتيح ميزة استعادة بيانات الاعتماد في "مدير بيانات الاعتماد" للمستخدمين استعادة حساباتهم على التطبيقات عند إعداد جهاز جديد. تتوفّر واجهة برمجة التطبيقات هذه في إصدار للمعاينة بواسطة المطوّرين، وهي متاحة على جميع الأجهزة التي تعمل بالإصدار 9 من نظام التشغيل Android أو الإصدارات الأحدث والمثبَّت عليها الإصدار 242200000 أو الإصدارات الأحدث من حزمة "خدمات Google Play" (GMS) الأساسية. تشمل مزايا ميزة "استعادة بيانات الاعتماد" ما يلي:

  • تجربة مستخدم سلسة: يمكن للمستخدمين استعادة حساباتهم على التطبيقات بدون الحاجة إلى تسجيل الدخول يدويًا إلى كل تطبيق على حدة.
  • زيادة تفاعل المستخدمين: من المرجّح أن يواصل المستخدمون استخدام تطبيقك إذا كان بإمكانهم استعادة حساباتهم عند إعداد جهاز جديد.
  • تقليل جهد التطوير: ميزة "استعادة بيانات الاعتماد" مدمجة مع "مدير بيانات الاعتماد"، لذا يمكن للمطوّرين الذين يتيحون استخدام مفاتيح المرور إضافة إمكانات استعادة بيانات الاعتماد.

آلية العمل

يمكنك استخدام Restore Credentials لإنشاء بيانات الاعتماد والحصول عليها ومحوها.

  1. إنشاء بيانات اعتماد الاستعادة: عندما يسجّل المستخدم الدخول إلى تطبيقك، أنشئ بيانات اعتماد استعادة مرتبطة بحسابه. يتم تخزين بيانات الاعتماد هذه على الجهاز ومزامنتها مع السحابة الإلكترونية إذا فعّل المستخدم ميزة "الاحتفاظ بنسخة احتياطية من البيانات" من Google وكانت ميزة التشفير التام متاحة (يمكن للتطبيقات إيقاف مزامنة البيانات مع السحابة الإلكترونية).
  2. الحصول على بيانات الاعتماد الخاصة بالاستعادة: عندما يضبط المستخدم جهازًا جديدًا، يمكن لتطبيقك طلب بيانات الاعتماد الخاصة بالاستعادة من "مدير الاعتماد". يتيح لك ذلك تسجيل دخول المستخدم تلقائيًا بدون الحاجة إلى أي إدخال إضافي.
  3. محو بيانات اعتماد الاستعادة: عندما يسجّل المستخدم الخروج من تطبيقك، عليك حذف بيانات اعتماد الاستعادة المرتبطة به.

يمكن دمج ميزة "استعادة بيانات الاعتماد" بسلاسة مع أنظمة الخلفية التي سبق لها تنفيذ مفاتيح المرور. وتستند إمكانية التوافق هذه إلى أنّ كلاً من مفاتيح المرور ومفاتيح الاستعادة (نوع بيانات الاعتماد المستخدَم في ميزة "استعادة بيانات الاعتماد") يلتزم بالمواصفات الفنية الأساسية نفسها. يضمن هذا التوافق إمكانية استرداد بيانات اعتماد المستخدمين المخزّنة في الأنظمة المتوافقة مع مفاتيح المرور وإعادة تثبيتها بشكل فعّال من خلال عملية "استعادة بيانات الاعتماد"، ما يوفّر تجربة متسقة وسهلة الاستخدام على مستوى المنصات المختلفة وطرق المصادقة.

البطاقة السفلية في Credential Manager
الشكل 1. مخطّط بياني يوضّح كيفية استعادة بيانات تطبيق على جهاز جديد باستخدام بيانات اعتماد الاستعادة، بما في ذلك إنشاء بيانات الاعتماد وبدء عملية الاستعادة وتسجيل دخول المستخدم تلقائيًا

التنفيذ

تتوفّر واجهة برمجة التطبيقات Restore Credentials API من خلال مكتبة Credential Manager Jetpack. للبدء، اتّبِع الخطوات التالية:

  1. أضِف تبعية Credential Manager إلى مشروعك.

    // 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 = fetchAuthenticationJson()
    
    // Create the GetRestoreCredentialRequest object
    val options = GetRestoreCredentialOption(authenticationJson)
    val getRequest = GetCredentialRequest(listOf(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. يضمن ذلك استعادة بيانات اعتماد التطبيق فور استعادة بيانات التطبيق.