توفّر علامة التبويب "المصادقة" عملية مصادقة آمنة ومبسّطة لاستخدامها في تطبيقات Android. من خلال إنشاء AuthTabIntent
وإطلاقه، يمكنك استدعاء علامة تبويب مخصّصة مخصّصة لإدارة تجربة مصادقة شاملة. تم تبسيط علامة التبويب وحصر إمكاناتها، ما يتيح للمستخدمين التركيز على المهمة المعنيّة. عند اكتمال العملية، تُعيد علامة التبويب الاتصال بتطبيقك مع إرسال نتيجة باستخدام https أو مخطّطات مخصّصة.


اعتبارًا من الإصدار 132 من Chrome، يمكن أن تستبدل علامة التبويب "المصادقة" عمليات دمج المصادقة الحالية في علامات التبويب المخصّصة مباشرةً. بالنسبة إلى المستخدمين الذين لا تتوافق أجهزتهم مع علامة التبويب "المصادقة"، يتم تلقائيًا استخدام علامة التبويب "مخصّصة" كخيار احتياطي. يمكن نقل البيانات من علامات التبويب المخصّصة إلى علامة التبويب "المصادقة" من خلال تعديل بضعة أسطر من الرموز البرمجية.
آلية العمل
باستخدام علامة التبويب "المصادقة"، يشغِّل تطبيق العميل علامة تبويب مخصّصة تقدّم نافذة متصفّح تحمِّل عنوان URL يتضمّن صفحة المصادقة المتوقّعة. بعد اكتمال العملية، تعرض علامة التبويب "المصادقة" نتيجة المصادقة باستخدام دالة استدعاء.
بعد المصادقة، عند الانتقال إلى معرّف URI لإعادة التوجيه إلى طلب إعادة الاتصال المقدَّم سابقًا، يتم تسجيل عملية إعادة التوجيه وإعادتها إلى تطبيق العميل باستخدام طلب إعادة الاتصال. بالنسبة إلى عمليات إعادة التوجيه التي تستخدم مخطّط https، يتحقّق المتصفّح من أنّ نطاق إعادة التوجيه وتطبيق العميل هما ملك الناشر نفسه باستخدام روابط تنقل إلى مواد عرض رقمية.
يتلقّى العميل معرّف الموارد المنتظم الذي تم الانتقال إليه مع مخطّط إعادة التوجيه (أو معرّف مضيف ومسار إعادة التوجيه في https) باستخدام دالة الاستدعاء المقدَّمة. وتشمل هذه البيانات رمز النتيجة بالإضافة إلى أي بيانات أخرى تقدّمها واجهة المصادقة. يمكنك استخدام هذه البيانات للتحقّق من المصادقة أو التعامل مع السيناريوهات غير الناجحة.
لماذا ننصحك باستخدام Auth Tab؟
قبل علامة التبويب "المصادقة"، كان بإمكانك استخدام نية علامات التبويب المخصّصة العادية لتعزيز عمليات المصادقة. يُفضَّل استخدام علامة تبويب المصادقة لأنّها توفّر أمانًا محسّنًا وتجربة سلسة، كما أنّها تُنشئ نموذجًا لبعض العناصر الداخلية للمصادقة من رمز العميل. لهذه الأسباب، ستلاحظ أنّ علامة التبويب "المصادقة" تقدّم تجربة أفضل.
مستوى أمان مُحسَّن
في عملية تنفيذ نموذجية لعلامة تبويب مخصّصة، يجب توفُّر نية لتلقّي البيانات من نافذة المتصفّح التي تعالج المصادقة. ويتطلّب ذلك رمزًا برمجيًا إضافيًا ويعرّض تطبيقك للتدخل المحتمل في نيتك. باستخدام علامة التبويب "المصادقة"، يتم تلقّي البيانات باستخدام دالة استدعاء، مع نقل البيانات مباشرةً بين واجهة برمجة التطبيقات Android API وتطبيق العميل.
تجربة سلسة
في علامة التبويب المخصّصة، يمكن للمستخدم الوصول إلى ميزات إضافية في المتصفّح قد لا تكون مرغوبًا فيها لعملية المصادقة. توفّر علامة التبويب "المصادقة" تجربة مبسّطة تزيل معظم خيارات التخصيص المتاحة في علامة التبويب "مخصّصة" العادية. في متصفّحات Chrome، يشمل ذلك زر التصغير والقائمة السياقية التي تظهر عند الضغط مع الاستمرار والنقر للبحث، بالإضافة إلى عناصر القائمة الفتح في Chrome ووضع إشارة مرجعية وتنزيل ومشاركة والإضافة إلى الشاشة الرئيسية.
لا تزال علامات التبويب الخاصة بميزة "المصادقة" تحتفظ بميزات للمتصفّح لملء كلمات المرور ومعلومات الدفع المحفوظة سابقًا تلقائيًا، والتنقّل للخلف أو للأمام، وإعادة التحميل، وعرض معلومات الصفحة، وطلب إصدار مخصّص لأجهزة الكمبيوتر المكتبي من الصفحة، وتوفير الترجمة.
تجميع البيانات
يؤدي استخدام علامة التبويب "المصادقة" وحدها إلى عدم الحاجة إلى طلب للحصول على بيانات من المتصفّح، بالإضافة إلى فلاتر الطلبات في AndroidManifest.xml
التي كانت مطلوبة سابقًا لكي تعمل المصادقة بشكل صحيح. ويؤدي ذلك إلى إزالة التعقيد من جهة العميل. لا يزال بإمكانك تضمين بعض هذه الميزات في رمز العميل لتوفير التوافق مع الإصدارات القديمة من علامات التبويب المخصّصة في الحالات التي لا تتوفّر فيها علامة التبويب "المصادقة" على أجهزة المستخدمين.
تنفيذ علامة التبويب "المصادقة"
تتطلّب علامة التبويب "المصادقة" مكتبة مصادقة المتصفّح AndroidX. يمكن إضافة مكتبة متصفّح AndroidX في قسم "التبعيات" في ملف build.gradle
الخاص بالمشروع. تتوفّر واجهات برمجة التطبيقات في إصدار أوّلي. أضِف ما يلي إلى ملف الإنشاء:
dependencies {
implementation 'androidx.browser:browser:1.9.0-alpha01'
}
قبل إطلاق علامة تبويب "المصادقة"، يجب الإعلان عن ActivityResultLauncher
يأخذ ActivityResultCaller
بالإضافة إلى ActivityResultCallback
. يتم إجراء ذلك قبل إنشاء النشاط أو المقتطف:
// In your activity
private final ActivityResultLauncher<Intent> mLauncher =
AuthTabIntent.registerActivityResultLauncher(this, this::handleAuthResult);
private void handleAuthResult(AuthResult result) {
String message = switch (result.resultCode) {
case AuthTabIntent.RESULT_OK -> "Received auth result.";
case AuthTabIntent.RESULT_CANCELED -> "AuthTab canceled.";
case AuthTabIntent.RESULT_VERIFICATION_FAILED -> "Verification failed.";
case AuthTabIntent.RESULT_VERIFICATION_TIMED_OUT -> "Verification timed out.";
}
if (result.resultCode == AuthTabIntent.RESULT_OK) {
message += " Uri: " + result.resultUri;
}
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
بعد ذلك، استخدِم AuthTabIntent.Builder
لإنشاء AuthTabIntent
، ثم استخدِم طريقة launch
. تقبل طرق الإطلاق إحدى مجموعتَي المَعلمات استنادًا إلى المخطط الذي تطلبه:
redirectScheme: بالنسبة إلى مخطّط إعادة توجيه مخصّص، يعيد المتصفّح توجيه معرّف الموارد المنتظم (URI) مع المخطّط المقدَّم.
redirectHost وredirectPath: بالنسبة إلى مخططات إعادة التوجيه عبر https، تتطلّب واجهة برمجة التطبيقات مضيفًا ومسارًا منفصلَين لكي يرصد المتصفّح عملية إعادة التوجيه ويعرض عنوان URL. عند استخدام https، يجب إثبات صحة رابط مادة العرض الرقمية.
private void launchAuthTab() {
AuthTabIntent authTabIntent = new AuthTabIntent.Builder.build();
authTabIntent.launch(mLauncher, Uri.parse("https://www.example.com/auth"), "mycustomscheme");
}
private void launchAuthTabHttps() {
String host = "your_host";
String path = "your_path";
AuthTabIntent authTabIntent = new AuthTabIntent.Builder.build();
authTabIntent.launch(mLauncher, Uri.parse("https://www.example.com/auth", host, path);
}
نقل البيانات من علامات التبويب المخصّصة إلى علامة التبويب "المصادقة"
عدِّل عملية تنفيذ مصادقة علامات التبويب المخصّصة الحالية من خلال تعديل نية علامات التبويب المخصّصة إلى نية علامة التبويب الجديدة للمصادقة. بعد إضافة الرمز، ابحث عن نية علامات التبويب المخصّصة وعدِّلها إلى نية علامة التبويب الجديدة لتأكيد الهوية.
CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder().build();
customTabsIntent.launchUrl(context, uri)
// change to -->
AuthTabIntent authTabIntent = new AuthTabIntent.Builder.build();
authTabIntent.launch(mLauncher, Uri.parse("https://www.example.com/auth", "mycustomscheme");
/* - OR - */
authTabIntent.launch(mLauncher, Uri.parse("https://www.example.com/auth", host, path);
استخدام علامات التبويب المخصّصة كخيار احتياطي
يمكن أن تتطلّب بعض عمليات التنفيذ المصادقة عندما لا يكون جهاز المستخدم مزوّدًا بعلامة التبويب "المصادقة". على سبيل المثال، قد يحدث ذلك إذا كان المتصفّح التلقائي لا يتيح استخدام علامة التبويب "المصادقة" أو إذا لم يكن إصدار المتصفّح التلقائي بالمستوى المطلوب. في هذه الحالات، يُطلق مسار Auth Tab تلقائيًا علامة تبويب مخصّصة بدلاً من المتصفحات التي تتيح علامات التبويب المخصّصة.
لحلّ هذه المشكلة، أضِف عملية تنفيذ علامة التبويب "المصادقة" مع الاحتفاظ برمز علامات التبويب المخصّصة الحالي الذي يعالج عمليات المصادقة كحل احتياطي.
تظهر لمستخدمي الأجهزة المتوافقة مع ميزة "علامة تبويب المصادقة" خطوات استخدام هذه الميزة الجديدة، بينما يعتمد المستخدمون الآخرون على آلية تنفيذ علامات التبويب المخصّصة القديمة. يجب التعامل بحرص مع البيانات التي يمكن أن تصل إلى ActivityResultCallback
أو إلى نية النشاط. يُرجى العِلم أنّه في حال استخدام AuthTabIntent
لبدء تجربة النسخ الاحتياطي وعدم توافق علامة التبويب Auth Tab مع المتصفّح الحالي، سيتلقّى تطبيقك نتيجة Activity.RESULT_CANCELED
عند إغلاق علامة التبويب المخصّصة.
يمكن العثور على مثال لتنفيذ علامة التبويب "المصادقة" مع الاعتماد على علامات التبويب المخصّصة في مكتبة مساعِد متصفّح Android.