تدفق دمج 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 لكلمات المرور في تطبيقك؟ بدء الاستخدام.