पुष्टि करने की प्रक्रिया को आसान बनाने के लिए, पुष्टि करने वाले टैब का इस्तेमाल करना

Auth Tab, Android ऐप्लिकेशन में इस्तेमाल करने के लिए, पुष्टि करने की सुरक्षित और आसान प्रोसेस उपलब्ध कराता है. AuthTabIntent बनाकर और लॉन्च करके, एक खास कस्टम टैब को चालू किया जा सकता है. इसे पुष्टि करने की पूरी प्रोसेस को मैनेज करने के लिए डिज़ाइन किया गया है. इस टैब में कम सुविधाएं होती हैं, ताकि लोग अपने काम पर फ़ोकस कर सकें. पूरा होने पर, टैब आपके ऐप्लिकेशन को https या कस्टम स्कीमा का इस्तेमाल करके नतीजे के साथ वापस कॉल करता है.

सभी सुविधाओं वाला कस्टम टैब
पहली इमेज. Custom Tab full featured.
कम से कम सुविधाओं वाला पुष्टि करने वाला टैब
दूसरी इमेज. कम सुविधाओं वाला Auth Tab.

Chrome 137 से, पुष्टि करने वाला टैब सीधे तौर पर, कस्टम टैब में पुष्टि करने की सुविधा के मौजूदा इंटिग्रेशन की जगह ले सकता है. जिन उपयोगकर्ताओं के डिवाइसों पर पुष्टि करने वाले टैब की सुविधा काम नहीं करती है उनके लिए, कस्टम टैब पर फ़ॉलबैक अपने-आप हो जाता है. कस्टम टैब से पुष्टि करने वाले टैब पर माइग्रेट करने के लिए, कोड की कुछ लाइनों में बदलाव करना होता है.

यह कैसे काम करता है

पुष्टि करने वाले टैब की मदद से, क्लाइंट ऐप्लिकेशन एक खास कस्टम टैब लॉन्च करता है. यह टैब, ब्राउज़र विंडो दिखाता है. इस विंडो में, पुष्टि करने वाले पेज का यूआरएल लोड होता है. पुष्टि की प्रक्रिया पूरी होने के बाद, पुष्टि करने वाला टैब, कॉलबैक का इस्तेमाल करके पुष्टि का नतीजा दिखाता है.

पुष्टि हो जाने के बाद, जब पहले से दिए गए कॉलबैक रीडायरेक्ट यूआरआई पर नेविगेशन होता है, तो रीडायरेक्ट को कैप्चर किया जाता है. इसके बाद, कॉलबैक का इस्तेमाल करके, इसे क्लाइंट ऐप्लिकेशन को वापस भेज दिया जाता है. https स्कीमा का इस्तेमाल करके रीडायरेक्ट करने के लिए, ब्राउज़र यह पुष्टि करता है कि रीडायरेक्ट डोमेन और क्लाइंट ऐप्लिकेशन का मालिकाना हक एक ही पब्लिशर के पास है. इसके लिए, डिजिटल ऐसेट लिंक का इस्तेमाल किया जाता है.

क्लाइंट को रीडायरेक्ट स्कीम (या https के लिए, रीडायरेक्ट होस्ट और पाथ) के साथ नेविगेट किया गया यूआरआई मिलता है. इसके लिए, दिए गए कॉलबैक का इस्तेमाल किया जाता है. इस डेटा में, नतीजे का कोड और पुष्टि करने वाले इंटरफ़ेस से मिला कोई अन्य डेटा शामिल होता है. इस डेटा का इस्तेमाल, पुष्टि करने की प्रोसेस की जांच करने या प्रोसेस पूरी न होने की स्थितियों को मैनेज करने के लिए किया जा सकता है.

'सदस्यता' टैब क्यों?

'पुष्टि करें' टैब से पहले, पुष्टि करने की प्रोसेस को पूरा करने के लिए, स्टैंडर्ड कस्टम टैब इंटेंट का इस्तेमाल किया जा सकता था. Auth Tab का इस्तेमाल करना बेहतर होता है. इसकी वजह यह है कि यह बेहतर सुरक्षा देता है और इससे उपयोगकर्ता को आसानी से काम करने में मदद मिलती है. साथ ही, यह क्लाइंट कोड से पुष्टि करने के लिए कुछ इंटरनल को भी ऐब्स्ट्रैक्ट करता है. इन वजहों से, आपको लगेगा कि पुष्टि करने वाले टैब से बेहतर अनुभव मिलता है.

बेहतर सुरक्षा

कस्टम टैब को लागू करने के सामान्य तरीके में, पुष्टि करने की प्रोसेस को मैनेज करने वाली ब्राउज़र विंडो से डेटा पाने के लिए, इंटेंट की ज़रूरत होती है. इसके लिए, अतिरिक्त कोड की ज़रूरत होती है. साथ ही, इससे आपके ऐप्लिकेशन में संभावित रुकावटें आ सकती हैं. 'अनुमति' टैब की मदद से, डेटा को कॉलबैक का इस्तेमाल करके ऐक्सेस किया जाता है. साथ ही, Android API और क्लाइंट ऐप्लिकेशन के बीच डेटा को सीधे तौर पर ट्रांसफ़र किया जाता है.

बेहतर अनुभव

कस्टम टैब में, उपयोगकर्ता के पास ब्राउज़र की अतिरिक्त सुविधाओं का ऐक्सेस होता है. ये सुविधाएं, पुष्टि करने की प्रोसेस के लिए सही नहीं हो सकती हैं. Auth Tab, कस्टम टैब की तुलना में कम सुविधाएं देता है. इसमें, कस्टम टैब में उपलब्ध ज़्यादातर विकल्पों को हटा दिया जाता है. Chrome ब्राउज़र के लिए, इसमें छोटा करने वाला बटन, दबाकर रखने पर दिखने वाला कॉन्टेक्स्ट मेन्यू, और खोजने के लिए टच करने की सुविधा शामिल है. साथ ही, इसमें Chrome में खोलें, बुकमार्क करें, डाउनलोड करें और शेयर करें, और होमस्क्रीन पर जोड़ें जैसे मेन्यू आइटम भी शामिल हैं.

Auth Tabs में अब भी ये सुविधाएं उपलब्ध हैं: ब्राउज़र के लिए, पहले से सेव किए गए पासवर्ड और पेमेंट की जानकारी अपने-आप भरने की सुविधा, पीछे या आगे जाने की सुविधा, रीफ़्रेश करने की सुविधा, पेज की जानकारी दिखाने की सुविधा, पेज के डेस्कटॉप वर्शन का अनुरोध करने की सुविधा, और अनुवाद करने की सुविधा.

डेटा ऐब्स्ट्रैक्शन

सिर्फ़ 'पुष्टि' टैब को लागू करने से, ब्राउज़र से डेटा पाने के लिए इंटेंट की ज़रूरत नहीं पड़ती. साथ ही, AndroidManifest.xml में इंटेंट फ़िल्टर की भी ज़रूरत नहीं पड़ती. पहले, पुष्टि की सुविधा को सही तरीके से काम करने के लिए इनकी ज़रूरत पड़ती थी. इससे क्लाइंट साइड पर जटिलता कम हो जाती है. इनमें से कुछ सुविधाओं को अब भी क्लाइंट कोड में शामिल किया जा सकता है, ताकि उन स्थितियों में कस्टम टैब के साथ काम किया जा सके जहां उपयोगकर्ता के डिवाइसों पर पुष्टि करने वाला टैब उपलब्ध नहीं है.

पुष्टि वाला टैब लागू करना

Auth Tab के लिए, AndroidX ब्राउज़र ऑथ लाइब्रेरी की ज़रूरत होती है. AndroidX Browser Library को किसी प्रोजेक्ट की build.gradle फ़ाइल के dependencies सेक्शन में जोड़ा जा सकता है. ये एपीआई, ऐल्फ़ा वर्शन में उपलब्ध हैं. अपनी बिल्ड फ़ाइल में यह कोड जोड़ें:

dependencies {
    implementation 'androidx.browser:browser:1.9.0'
}

Auth Tab लॉन्च करने से पहले, एक 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: कस्टम रीडायरेक्ट स्कीम के लिए, ब्राउज़र रीडायरेक्ट करता है और दी गई स्कीम के साथ यूआरआई दिखाता है.

  • redirectHost, redirectPath: https रीडायरेक्ट स्कीम के लिए, एपीआई को ब्राउज़र के लिए एक अलग होस्ट और पाथ की ज़रूरत होती है, ताकि वह रीडायरेक्ट का पता लगा सके और यूआरआई दिखा सके. 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);
}

कस्टम टैब से पुष्टि करने वाले टैब पर माइग्रेट करना

कस्टम टैब के लिए पुष्टि करने की सुविधा को लागू करने के मौजूदा तरीके को अपडेट करें. इसके लिए, कस्टम टैब के इंटेंट को बदलकर, पुष्टि करने वाले नए टैब का इंटेंट सेट करें. कोड जोड़ने के बाद, कस्टम टैब इंटेंट ढूंढें और उसे नए Auth Tab इंटेंट में बदलें.

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 इंटेंट अपने-आप Custom Tab लॉन्च करता है. हालांकि, यह सुविधा उन ब्राउज़र के लिए उपलब्ध है जो Custom Tabs के साथ काम करते हैं.

CustomTabsClient#isAuthTabSupported() का इस्तेमाल करके, यह देखा जा सकता है कि ब्राउज़र पर 'पुष्टि करें' टैब काम करता है या नहीं. इस तरीके से, आपका ऐप्लिकेशन ब्राउज़र की सुविधाओं के आधार पर, पुष्टि करने वाले टैब या कस्टम टैब फ़्लो को डाइनैमिक तरीके से लॉन्च कर सकता है. ऐसी स्थिति को आसानी से मैनेज करने के लिए, जहां पुष्टि करने वाले टैब काम नहीं करते, पुष्टि करने वाले टैब को लागू करें. साथ ही, अपने मौजूदा कस्टम टैब कोड को फ़ॉलबैक के तौर पर इस्तेमाल करें, ताकि पुष्टि करने वाले फ़्लो को मैनेज किया जा सके.

ऐसे डेटा को मैनेज करें जो आपके ActivityResultCallback या गतिविधि के इंटेंट से मिल सकता है. ध्यान दें कि अगर फ़ॉलबैक अनुभव को लॉन्च करने के लिए AuthTabIntent का इस्तेमाल किया जाता है और मौजूदा ब्राउज़र पर Auth Tab काम नहीं करता है, तो कस्टम टैब बंद होने पर आपके ऐप्लिकेशन को Activity.RESULT_CANCELED नतीजा मिलता है.

Auth Tab को लागू करने का उदाहरण, Android Browser Helper लाइब्रेरी में देखा जा सकता है. इसमें कस्टम टैब पर फ़ॉलबैक करने का विकल्प भी होता है.

अन्य संसाधन