تدفق دمج Android

لدمج Smart Lock لكلمات المرور في تطبيق Android، يجب إضافة طلبات بيانات إلى Credentials API في خطوات بدء تشغيل التطبيق وتسجيل الدخول إليه. ويوضح المخطّط التالي تدفق تطبيق Android نموذجي يستخدم Smart Lock لكلمات المرور.

في حين أنّ هناك العديد من الطرق لدمج Smart Lock لكلمات المرور بنجاح، وتعتمد تفاصيل عملية الدمج على بنية التطبيق وتجربة المستخدم فيه، يوصى بالخطوات التالية لمعظم التطبيقات. تتمتع التطبيقات التي تستخدم هذا التدفق بمزايا تجربة المستخدم التالية:

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

رسم بياني لعملية تسجيل الدخول إلى Smart Lock

استرداد بيانات الاعتماد

  1. عند بدء تشغيل التطبيق، في حال لم يسبق لأي مستخدم تسجيل الدخول، يُرجى الاتصال بـ "CredentialsClient.request()".
  2. إذا نجحت عملية Task، يمكنك الحصول على بيانات اعتماد المستخدم من خلال getResult().getCredential() واستخدامها لتسجيل الدخول.
  3. إذا تعذّر تنفيذ الإجراء Task وكان الاستثناء من أمثلة الخطأ ResolvableApiException وعرض getStatusCode() الخطأ RESOLUTION_REQUIRED، يكون على المستخدم إدخال بيانات اعتماد لاختيار بيانات اعتماد. يمكنك الاتصال بـ startResolutionForResult() لتوجيه المستخدم إلى اختيار حساب محفوظ، ثم الاتصال بالرقم getParcelableExtra(Credential.EXTRA_KEY) للحصول على بيانات اعتماد المستخدم واستخدامها لتسجيل الدخول.

حفظ بيانات الاعتماد

  1. إذا تعذّر على Task مع ApiException عرض getStatusCode() ويعرض SIGN_IN_REQUIRED، لن يكون لدى المستخدم أي بيانات اعتماد محفوظة، وبالتالي عليه تسجيل الدخول أو الاشتراك يدويًا باستخدام عملية تسجيل الدخول أو الاشتراك الحالية. بعد أن يكمل المستخدم عملية تسجيل الدخول بنجاح، يمكنك إتاحة الفرصة للمستخدم لحفظ بيانات اعتماده لاستردادها في المستقبل (الخطوة 5).

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

    1. يمكنك الاتصال برقم CredentialsClient.getHintPickerIntent() وبدء الغرض من الطلب من المستخدم اختيار حساب، ثم الاتصال getParcelableExtra(Credential.EXTRA_KEY) للحصول على تلميح بشأن تسجيل الدخول.
    2. إذا تطابق رقم تعريف المستخدم في التلميح مع مستخدم حالي، املأ نموذج تسجيل الدخول به مسبقًا واسمح للمستخدم بإدخال كلمة المرور لتسجيل الدخول.
    3. إذا لم يتطابق رقم تعريف المستخدم في التلميح مع مستخدم حالي، يجب ملء نموذج الاشتراك مسبقًا برقم تعريف المستخدم واسمه، والسماح للمستخدم بإنشاء حساب جديد.
  2. بعد أن يسجّل المستخدم الدخول أو ينشئ حسابًا بنجاح، احفظ رقم تعريف المستخدم وكلمة المرور من خلال CredentialsClient.save().

    إذا سجَّل المستخدم الدخول باستخدام موفّر هوية موحّد مثل تسجيل الدخول بحساب Google، أنشِئ العنصر Credential باستخدام عنوان البريد الإلكتروني للمستخدم كرقم التعريف وحدِّد موفّر الهوية باستخدام setAccountType.

تسجيل الخروج

  1. عندما يسجّل المستخدم خروجه، اتّصِل بالرقم CredentialsClient.disableAutoSignIn() لمنع المستخدم من تسجيل الدخول مرة أخرى على الفور. يؤدي إيقاف ميزة "تسجيل الدخول تلقائيًا" أيضًا إلى تمكين المستخدمين من التبديل بين الحسابات بسهولة، على سبيل المثال، بين حسابات العمل والحسابات الشخصية، أو بين الحسابات على الأجهزة المشتركة، بدون الحاجة إلى إعادة إدخال معلومات تسجيل الدخول.

هل أنت جاهز لدمج Smart Lock لكلمات المرور في تطبيقك؟ بدء الاستخدام.