إذا كان تسجيل الدخول عبر One Tap يلبي احتياجاتك ، ففكر في استخدامه بدلاً من ذلك. يتمتع One Tap بتجربة مستخدم محدثة وتحسينات أخرى.

تدفق تكامل Android

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

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

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

رسم تخطيطي لتدفق تسجيل الدخول في Smart Lock

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

  1. عند بدء تشغيل التطبيق ، إذا لم يتم تسجيل دخول أي مستخدم بالفعل ، فاتصل بـ CredentialsClient.request() .
  2. إذا نجحت Task ، getResult().getCredential() على بيانات اعتماد المستخدم باستخدام 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) المستخدم بتحديد حساب ، ثم اتصل بـ getParcelableExtra(Credential.EXTRA_KEY) للحصول على تلميح تسجيل الدخول.
    2. إذا كان معرف المستخدم الخاص بالتلميح يطابق مستخدمًا موجودًا ، فقم بملء نموذج تسجيل الدخول مسبقًا به واسمح للمستخدم بإدخال كلمة المرور لتسجيل الدخول.
    3. إذا كان معرف المستخدم الخاص بالتلميح لا يتطابق مع مستخدم حالي ، فقم بملء نموذج التسجيل مسبقًا بمعرف المستخدم واسمه ، ودع المستخدم ينشئ حسابًا جديدًا.
  2. بعد أن يقوم المستخدم بتسجيل الدخول أو إنشاء حساب بنجاح ، احفظ معرف المستخدم وكلمة المرور باستخدام CredentialsClient.save() .

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

خروج

  1. عندما يقوم المستخدم بتسجيل الخروج ، اتصل بـ CredentialsClient.disableAutoSignIn() لمنع المستخدم من تسجيل الدخول مرة أخرى على الفور. كما يتيح تعطيل تسجيل الدخول التلقائي للمستخدمين التبديل بين الحسابات بسهولة - على سبيل المثال ، بين حسابات العمل والحسابات الشخصية ، أو بين الحسابات على الأجهزة المشتركة - دون الحاجة إلى إعادة إدخال معلومات تسجيل الدخول الخاصة بهم.

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