Auth Tab ব্যবহার করে প্রমাণীকরণ সহজ করুন

Auth Tab Android অ্যাপে ব্যবহারের জন্য একটি সুরক্ষিত এবং সরলীকৃত প্রমাণীকরণ প্রবাহ প্রদান করে। একটি AuthTabIntent তৈরি এবং চালু করার মাধ্যমে, আপনি একটি বিশেষ কাস্টম ট্যাব ব্যবহার করতে পারেন যা একটি এন্ড-টু-এন্ড প্রমাণীকরণ অভিজ্ঞতা পরিচালনা করার জন্য ডিজাইন করা হয়েছে। ট্যাবটি ছিনতাই করা হয়েছে এবং এতে সীমিত ক্ষমতা রয়েছে, যা ব্যবহারকারীদের হাতের কাজটিতে ফোকাস করতে সক্ষম করে। সমাপ্ত হলে ট্যাবটি https বা কাস্টম স্কিমা ব্যবহার করে ফলাফল সহ আপনার অ্যাপ্লিকেশনে ফিরে আসে।

একটি সম্পূর্ণ বৈশিষ্ট্যযুক্ত কাস্টম ট্যাব
চিত্র 1. কাস্টম ট্যাব সম্পূর্ণ বৈশিষ্ট্যযুক্ত।
ন্যূনতম কার্যকারিতা ধারণকারী একটি প্রমাণ ট্যাব
চিত্র 2. নূন্যতম ক্ষমতা সহ প্রমাণীকরণ ট্যাব।

Chrome 132 থেকে, Auth Tab সরাসরি বিদ্যমান কাস্টম ট্যাব প্রমাণীকরণ ইন্টিগ্রেশন প্রতিস্থাপন করতে পারে। ব্যবহারকারীদের জন্য যাদের ডিভাইস Auth Tab সমর্থন করে না, কাস্টম ট্যাবগুলিতে ফলব্যাক স্বয়ংক্রিয়। কাস্টম ট্যাব থেকে Auth ট্যাবে স্থানান্তর করা কোডের কয়েকটি লাইন পরিবর্তন করে করা যেতে পারে।

এটা কিভাবে কাজ করে

Auth Tab এর সাথে, একটি ক্লায়েন্ট অ্যাপ একটি বিশেষ কাস্টম ট্যাব চালু করে যা প্রত্যাশিত প্রমাণীকরণ পৃষ্ঠা সহ একটি URL লোড করার জন্য একটি ব্রাউজার উইন্ডো উপস্থাপন করে। সমাপ্তির পরে, প্রমাণ ট্যাব একটি কলব্যাক ব্যবহার করে প্রমাণীকরণ ফলাফল প্রদান করে।

প্রমাণীকরণের পরে, যখন পূর্বে-প্রদত্ত কলব্যাক পুনঃনির্দেশ URI-তে একটি নেভিগেশন ঘটে, পুনঃনির্দেশটি ক্যাপচার করা হয় এবং কলব্যাক ব্যবহার করে ক্লায়েন্ট অ্যাপ্লিকেশনে ফিরে আসে। https স্কিমা ব্যবহার করে রিডাইরেক্টের জন্য, ব্রাউজার যাচাই করে যে রিডাইরেক্ট ডোমেন এবং ক্লায়েন্ট অ্যাপ ডিজিটাল অ্যাসেট লিঙ্ক ব্যবহার করে একই প্রকাশকের মালিকানাধীন।

ক্লায়েন্ট প্রদত্ত কলব্যাক ব্যবহার করে পুনঃনির্দেশ স্কিম (বা https, পুনঃনির্দেশ হোস্ট এবং পাথের জন্য) নেভিগেট করা URI গ্রহণ করে। এই ডেটাতে একটি ফলাফল কোডের পাশাপাশি প্রমাণীকরণ ইন্টারফেস দ্বারা প্রদত্ত অন্যান্য ডেটা অন্তর্ভুক্ত রয়েছে। আপনি প্রমাণীকরণ যাচাই বা অ-সফল পরিস্থিতি পরিচালনা করতে এই ডেটা ব্যবহার করতে পারেন।

কেন প্রমাণ ট্যাব?

Auth Tab-এর আগে, আপনি ক্ষমতা প্রমাণীকরণ প্রবাহের জন্য একটি আদর্শ কাস্টম ট্যাব ব্যবহার করতে পারেন। একটি প্রমাণীকরণ ট্যাব বাঞ্ছনীয় কারণ এটি বর্ধিত নিরাপত্তা প্রদান করে, একটি সুবিন্যস্ত অভিজ্ঞতা প্রদান করে এবং ক্লায়েন্ট কোড থেকে প্রমাণীকরণের জন্য কিছু অভ্যন্তরীণ বিমূর্তও করে। এই কারণে আপনি দেখতে পাবেন যে Auth Tab একটি ভাল অভিজ্ঞতা প্রদান করে।

উন্নত নিরাপত্তা

একটি সাধারণ কাস্টম ট্যাব বাস্তবায়নে, ব্রাউজার উইন্ডো হ্যান্ডলিং প্রমাণীকরণ থেকে ডেটা গ্রহণ করার জন্য একটি উদ্দেশ্য প্রয়োজন। এর জন্য অতিরিক্ত কোডের প্রয়োজন এবং আপনার অ্যাপটিকে আপনার উদ্দেশ্যের সম্ভাব্য হস্তক্ষেপের জন্য উন্মুক্ত করে। একটি প্রমাণীকরণ ট্যাবের মাধ্যমে, Android API এবং ক্লায়েন্ট অ্যাপের মধ্যে সরাসরি ডেটা স্থানান্তর সহ একটি কলব্যাক ব্যবহার করে ডেটা গ্রহণ করা হয়।

একটি সুবিন্যস্ত অভিজ্ঞতা

একটি কাস্টম ট্যাবে, ব্যবহারকারীর ব্রাউজারে অতিরিক্ত বৈশিষ্ট্যগুলিতে অ্যাক্সেস রয়েছে যা প্রমাণীকরণ প্রবাহের জন্য অবাঞ্ছিত হতে পারে। একটি প্রমাণ ট্যাব একটি স্লিমড-ডাউন অভিজ্ঞতা প্রদান করে যা একটি আদর্শ কাস্টম ট্যাবে উপলব্ধ বেশিরভাগ কাস্টমাইজেশন বিকল্পগুলিকে সরিয়ে দেয়। ক্রোম ব্রাউজারগুলির জন্য, এতে মিনিমাইজ বোতাম, প্রাসঙ্গিক মেনু এবং অনুসন্ধানের জন্য টাচ, সেইসাথে Chrome-এ খোলার জন্য মেনু আইটেম, বুকমার্ক, ডাউনলোড এবং শেয়ার করা এবং হোমস্ক্রীনে যোগ করা অন্তর্ভুক্ত রয়েছে।

প্রমাণ ট্যাবগুলি এখনও ব্রাউজারের পূর্বে সংরক্ষিত পাসওয়ার্ড এবং অর্থপ্রদান স্বয়ংক্রিয়ভাবে পূরণ করতে, পিছনের দিকে নেভিগেট করতে বা ফরোয়ার্ড করতে, রিফ্রেশ করতে, পৃষ্ঠার তথ্য দেখাতে, পৃষ্ঠার একটি ডেস্কটপ সংস্করণের জন্য অনুরোধ করতে এবং অনুবাদ প্রদানের বৈশিষ্ট্যগুলি ধরে রাখে৷

ডেটা বিমূর্ততা

শুধুমাত্র প্রমাণীকরণ ট্যাব প্রয়োগ করা ব্রাউজার থেকে ডেটা গ্রহণের জন্য একটি অভিপ্রায়ের প্রয়োজনীয়তাকে দূর করে, সেইসাথে AndroidManifest.xml এ ইন্টেন্ট ফিল্টারগুলিকে সঠিকভাবে কাজ করার জন্য প্রমাণীকরণের জন্য আগে প্রয়োজন ছিল৷ এটি ক্লায়েন্টের দিকে জটিলতা দূর করে। ব্যবহারকারীর ডিভাইসে Auth Tab উপলভ্য নয় এমন পরিস্থিতিতে কাস্টম ট্যাবগুলির সাথে পশ্চাদমুখী সামঞ্জস্য প্রদান করতে এই বৈশিষ্ট্যগুলির মধ্যে কিছু এখনও ক্লায়েন্ট কোডে অন্তর্ভুক্ত করা যেতে পারে।

প্রমাণ ট্যাব প্রয়োগ করুন

প্রমাণ ট্যাবের জন্য 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 তৈরি করতে AuthTabIntent.Builder ব্যবহার করুন, তারপর launch পদ্ধতিতে কল করুন। লঞ্চ পদ্ধতিগুলি আপনার প্রয়োজনীয় স্কিমের উপর ভিত্তি করে প্যারামিটারের দুটি সেটের একটি গ্রহণ করে:

  • redirectScheme : একটি কাস্টম রিডাইরেক্ট স্কিমের জন্য, ব্রাউজার রিডাইরেক্ট করে এবং প্রদত্ত স্কিম সহ URI ফেরত দেয়।

  • redirectHost, redirectPath : https পুনঃনির্দেশ স্কিমগুলির জন্য, API-এর জন্য ব্রাউজারকে পুনঃনির্দেশ সনাক্ত করতে এবং URI ফেরত দেওয়ার জন্য একটি পৃথক হোস্ট এবং পাথ প্রয়োজন। 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 ট্যাবে স্থানান্তর করুন৷

নতুন প্রমাণীকরণ ট্যাব অভিপ্রায়ে আপনার কাস্টম ট্যাব অভিপ্রায় সংশোধন করে আপনার বিদ্যমান কাস্টম ট্যাব প্রমাণীকরণ বাস্তবায়ন আপডেট করুন৷ কোডটি যোগ করার পরে, কাস্টম ট্যাব অভিপ্রায়টি সনাক্ত করুন এবং এটিকে নতুন প্রমাণ ট্যাব অভিপ্রায়ে পরিবর্তন করুন৷

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 পরিচালনা করার জন্য সজ্জিত নয়। উদাহরণস্বরূপ, ডিফল্ট ব্রাউজারটি Auth Tab সমর্থন না করলে বা ডিফল্ট ব্রাউজারের সংস্করণটি প্রয়োজনীয় স্তরে না থাকলে এটি ঘটতে পারে। এই ক্ষেত্রে একটি Auth Tab উদ্দেশ্য স্বয়ংক্রিয়ভাবে কাস্টম ট্যাব সমর্থন করে এমন ব্রাউজারগুলির পরিবর্তে একটি কাস্টম ট্যাব চালু করে৷

এই পরিস্থিতিকে সুন্দরভাবে পরিচালনা করতে, আপনার বিদ্যমান কাস্টম ট্যাব কোড হ্যান্ডলিং auth ফ্লোকে ফলব্যাক হিসাবে রেখে Auth Tab বাস্তবায়ন যোগ করুন।

Auth Tab-রেডি ডিভাইসের ব্যবহারকারীরা নতুন Auth Tab ফ্লো দেখতে পান, অন্যরা লিগ্যাসি কাস্টম ট্যাব বাস্তবায়নে ফিরে যান। আপনার ActivityResultCallback বা আপনার কার্যকলাপের অভিপ্রায়ে আসতে পারে এমন ডেটা পরিচালনা করার যত্ন নিন। মনে রাখবেন যে যদি AuthTabIntent ব্যবহার করা হয় ফলব্যাক অভিজ্ঞতা আরম্ভ করার জন্য এবং Auth Tab বর্তমান ব্রাউজার দ্বারা সমর্থিত না হয়, আপনার অ্যাপটি একটি Activity.RESULT_CANCELED পায়। কাস্টম ট্যাব বন্ধ হয়ে গেলে RESULT_CANCELED ফলাফল।

কাস্টম ট্যাবে ফলব্যাক সহ Auth Tab এর বাস্তবায়নের একটি উদাহরণ Android ব্রাউজার হেল্পার লাইব্রেরিতে পাওয়া যাবে।

অতিরিক্ত সম্পদ