ক্রেডেনশিয়াল ম্যানেজারের রিস্টোর ক্রেডেনশিয়াল ফিচার ব্যবহারকারীদের নতুন ডিভাইস সেট আপ করার সময় তাদের অ্যাপ অ্যাকাউন্ট পুনরুদ্ধার করতে দেয়। এই API ডেভেলপার প্রিভিউতে রয়েছে এবং অ্যান্ড্রয়েড ৯ বা তার বেশি ভার্সন এবং গুগল প্লে সার্ভিসেস (জিএমএস) কোর ভার্সন ২৪২২০০০০০ বা তার বেশি ভার্সনযুক্ত সকল ডিভাইসে উপলব্ধ। ক্রেডেনশিয়াল রিস্টোর করার সুবিধার মধ্যে রয়েছে:
- নির্বিঘ্ন ব্যবহারকারীর অভিজ্ঞতা : ব্যবহারকারীরা প্রতিটি অ্যাপে ম্যানুয়ালি সাইন ইন না করেই তাদের অ্যাপ অ্যাকাউন্ট পুনরুদ্ধার করতে পারবেন।
- ব্যবহারকারীর ব্যস্ততা বৃদ্ধি : নতুন ডিভাইস সেট আপ করার সময় যদি ব্যবহারকারীরা তাদের অ্যাকাউন্ট পুনরুদ্ধার করতে পারেন তবে তারা আপনার অ্যাপটি ব্যবহার চালিয়ে যাওয়ার সম্ভাবনা বেশি।
- কম ডেভেলপমেন্ট প্রচেষ্টা : রিস্টোর ক্রেডেনশিয়াল বৈশিষ্ট্যটি ক্রেডেনশিয়াল ম্যানেজারের সাথে একীভূত করা হয়েছে, তাই যেসব ডেভেলপার ইতিমধ্যেই পাসকি সমর্থন করে তারা ক্রেডেনশিয়াল পুনরুদ্ধার ক্ষমতা যোগ করতে পারেন।
কিভাবে এটা কাজ করে
প্রাসঙ্গিক শংসাপত্র তৈরি করতে, পেতে এবং সাফ করতে আপনি পুনরুদ্ধার শংসাপত্র ব্যবহার করতে পারেন।
- পুনরুদ্ধার শংসাপত্র তৈরি করুন : ব্যবহারকারী যখন আপনার অ্যাপে সাইন ইন করেন, তখন তাদের অ্যাকাউন্টের সাথে সম্পর্কিত একটি পুনরুদ্ধার শংসাপত্র তৈরি করুন। ব্যবহারকারী যদি গুগল ব্যাকআপ সক্ষম করে থাকেন এবং এন্ড টু এন্ড এনক্রিপশন উপলব্ধ থাকে তবে এই শংসাপত্রটি স্থানীয়ভাবে সংরক্ষণ করা হয় এবং ক্লাউডে সিঙ্ক করা হয় (অ্যাপগুলি ক্লাউডে সিঙ্ক করা থেকে অপ্ট আউট করতে পারে)।
- পুনরুদ্ধার শংসাপত্র পান : যখন ব্যবহারকারী একটি নতুন ডিভাইস সেট আপ করেন, তখন আপনার অ্যাপটি ক্রেডেনশিয়াল ম্যানেজার থেকে পুনরুদ্ধার শংসাপত্রের অনুরোধ করতে পারে। এটি আপনাকে কোনও অতিরিক্ত ইনপুট ছাড়াই স্বয়ংক্রিয়ভাবে ব্যবহারকারীকে সাইন ইন করতে দেয়।
- পুনরুদ্ধার শংসাপত্র সাফ করুন : ব্যবহারকারী যখন আপনার অ্যাপ থেকে সাইন আউট করেন, তখন আপনার সংশ্লিষ্ট পুনরুদ্ধার শংসাপত্রটি মুছে ফেলা উচিত।
পুনরুদ্ধার শংসাপত্র বৈশিষ্ট্যটি ইতিমধ্যে পাসকি প্রয়োগ করা ব্যাকএন্ড সিস্টেমগুলির সাথে মসৃণভাবে সংহত হতে পারে। এই সামঞ্জস্যতা এই সত্য থেকে উদ্ভূত হয় যে পাসকি এবং পুনরুদ্ধার কী (পুনরুদ্ধার শংসাপত্র বৈশিষ্ট্য দ্বারা ব্যবহৃত শংসাপত্রের ধরণ) উভয়ই একই অন্তর্নিহিত প্রযুক্তিগত বৈশিষ্ট্য মেনে চলে। এই সারিবদ্ধকরণ নিশ্চিত করে যে পুনরুদ্ধার শংসাপত্র প্রক্রিয়াটি পাসকি-সক্ষম সিস্টেমে সংরক্ষিত ব্যবহারকারীর শংসাপত্রগুলি কার্যকরভাবে পুনরুদ্ধার এবং পুনঃস্থাপন করতে পারে, বিভিন্ন প্ল্যাটফর্ম এবং প্রমাণীকরণ পদ্ধতিতে একটি সামঞ্জস্যপূর্ণ এবং ব্যবহারকারী-বান্ধব অভিজ্ঞতা প্রদান করে।
বাস্তবায়ন
ক্রেডেনশিয়াল ম্যানেজার জেটপ্যাক লাইব্রেরির মাধ্যমে রিস্টোর ক্রেডেনশিয়াল API পাওয়া যায়। শুরু করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- ক্রেডেনশিয়াল ম্যানেজার লাইব্রেরির সর্বশেষ সংস্করণ ব্যবহার করতে, আপনার অ্যাপ মডিউলের বিল্ড স্ক্রিপ্টে নিম্নলিখিত নির্ভরতাগুলি যোগ করুন:
কোটলিন
dependencies { implementation("androidx.credentials:credentials:1.6.0-beta03") }
গ্রোভি
dependencies { implementation "androidx.credentials:credentials:1.6.0-beta03" }
একটি
CreateRestoreCredentialRequestঅবজেক্ট তৈরি করুন।CredentialManagerঅবজেক্টেcreateCredential()পদ্ধতিটি কল করুন।val credentialManager = CredentialManager.create(context) // On a successful authentication create a Restore Key // Pass in the context and CreateRestoreCredentialRequest object val response = credentialManager.createCredential(context, createRestoreRequest)এই জেনারেট করা রিস্টোর ক্রেডেনশিয়াল হল এক ধরণের ওয়েবঅথন ক্রেডেনশিয়াল, এবং এটি রিস্টোর কী নামে পরিচিত।
যখন ব্যবহারকারী একটি নতুন ডিভাইস সেট আপ করেন, তখন
CredentialManagerঅবজেক্টেgetCredential()পদ্ধতিটি কল করুন।// Fetch the Authentication JSON from server val authenticationJson = fetchAuthenticationJson() // Create the GetRestoreCredentialRequest object val options = GetRestoreCredentialOption(authenticationJson) val getRequest = GetCredentialRequest(listOf(options)) // The restore key can be fetched in two scenarios to // 1. On the first launch of app on the device, fetch the Restore Key // 2. In the onRestore callback (if the app implements the Backup Agent) val response = credentialManager.getCredential(context, getRequest)যখন ব্যবহারকারী আপনার অ্যাপ থেকে সাইন আউট করে, তখন
CredentialManagerঅবজেক্টেclearCredentialState()পদ্ধতিটি কল করুন।// Create a ClearCredentialStateRequest object val clearRequest = ClearCredentialStateRequest(TYPE_CLEAR_RESTORE_CREDENTIAL) // On user log-out, clear the restore key val response = credentialManager.clearCredentialState(clearRequest)
যদি আপনি ব্যাকআপ এজেন্ট ব্যবহার করেন, তাহলে onRestore কলব্যাকের মধ্যে getCredential অংশটি সম্পাদন করুন। এটি নিশ্চিত করে যে অ্যাপের ডেটা পুনরুদ্ধারের সাথে সাথেই অ্যাপের শংসাপত্রগুলি পুনরুদ্ধার করা হয়েছে।
সচরাচর জিজ্ঞাস্য
প্রশ্ন ১. একটি পুনরুদ্ধার কী এবং একটি পাসকির মধ্যে পার্থক্য কী?
একটি পুনরুদ্ধার কী একটি পাসকির মতোই কাজ করে কিন্তু বিশেষভাবে নতুন ডিভাইসে অ্যাকাউন্ট পুনরুদ্ধারের জন্য ডিজাইন করা হয়েছে। যখন আপনি প্রমাণীকরণের জন্য Google পাসওয়ার্ড ম্যানেজারের মতো একটি পাসওয়ার্ড ম্যানেজার ব্যবহার করেন, তখন আপনার ব্যবহারযোগ্য পাসকি এবং পাসওয়ার্ডগুলি প্রদর্শিত হয়, যখন পুনরুদ্ধার কীটি প্রদর্শিত হয় না, কারণ এটি নিয়মিত সাইন-ইনের জন্য নয়।
প্রশ্ন ২. একটি পুনরুদ্ধার কী কি একবার ব্যবহারের জন্য প্রযোজ্য?
না, একটি পুনরুদ্ধার কী এককালীন ব্যবহারের শংসাপত্র নয়। ক্রেডেনশিয়াল ম্যানেজার স্টেটলেস এবং ব্যবহারকারীর কার্যকলাপ সম্পর্কে অবগত নয়, তাই এটি ব্যবহারের পরে স্বয়ংক্রিয়ভাবে কীটি মুছে ফেলতে পারে না।
পুনরুদ্ধার কীগুলি শুধুমাত্র নিম্নলিখিত পরিস্থিতিতে সরানো হয়:
- সিস্টেম-স্তরের ক্রিয়া : ব্যবহারকারীরা অ্যাপটি আনইনস্টল করে বা এর ডেটা সাফ করে।
- অ্যাপ-লেভেল কল : আপনি যখন আপনার অ্যাপের কোডে ব্যবহারকারীর লগ আউট পরিচালনা করেন তখন
CredentialManager#clearCredentialState()কল করে প্রোগ্রাম্যাটিকভাবে কীটি মুছে ফেলেন।
প্রশ্ন ৩. পুনরুদ্ধার শংসাপত্র বৈশিষ্ট্যটি কি শুধুমাত্র একটি নতুন ডিভাইসের জন্য কাজ করে?
হ্যাঁ, এই বৈশিষ্ট্যটি একটি নতুন অ্যান্ড্রয়েড-চালিত ডিভাইসের প্রাথমিক সেটআপের জন্য ডিজাইন করা হয়েছে, কারণ এটি সরাসরি সিস্টেমের ব্যাকআপ এবং পুনরুদ্ধার কার্যকারিতার সাথে সম্পর্কিত।
প্রশ্ন ৪. আমি কি রিস্টোর ক্রেডেনশিয়াল ব্যবহার করে এমন কোনও ব্যবহারকারীকে নীরবে সাইন ইন করতে পারি যেখানে একই গুগল অ্যাকাউন্ট লগ ইন করা আছে?
না, 'রিস্টোর ক্রেডেনশিয়াল' বৈশিষ্ট্যটি ডিভাইস জুড়ে সাধারণ সাইন-ইনের জন্য ব্যবহার করার উদ্দেশ্যে নয়। এটি শুধুমাত্র একটি নির্দিষ্ট পরিস্থিতিতে কাজ করে: যখন একজন ব্যবহারকারী তার পুরানো ডিভাইস থেকে ব্যাকআপ পুনরুদ্ধার করে একটি নতুন ডিভাইস সেট আপ করেন। এই এককালীন পুনরুদ্ধার প্রক্রিয়াটি সফল হওয়ার জন্য উভয় ডিভাইসকেই একই Google অ্যাকাউন্টের সাথে লিঙ্ক করতে হবে।
প্রশ্ন ৫। আমার প্রতিষ্ঠানের একটি প্রধান অ্যাপ এবং একাধিক উপ-অ্যাপ আছে। এই সমস্ত অ্যাপের জন্য কি কেউ কী কাজ পুনরুদ্ধার করতে পারে?
না। একটি রিস্টোর কী একটি অ্যাপ্লিকেশনের অনন্য প্যাকেজ নামের সাথে সংযুক্ত থাকে। যেহেতু আপনার প্রধান অ্যাপ এবং প্রতিটি সাব-অ্যাপের প্যাকেজ নাম আলাদা, তাই আপনাকে প্রতিটি অ্যাপের জন্য একটি পৃথক রিস্টোর কী তৈরি করতে হবে।
প্রশ্ন ৬. ব্যবহারকারীর অ্যাকাউন্টের জন্য একটি পুনরুদ্ধার কী তৈরি করতে কি পাসকি প্রয়োজন?
না, পাসকির প্রয়োজন নেই। রিস্টোর কী তৈরি করার ক্ষমতা ব্যবহারকারীর সাইন-ইন পদ্ধতির উপর নির্ভর করে না। এর উদ্দেশ্য হল ব্যবহারকারীর বর্তমান প্রমাণীকরণ অবস্থা সংরক্ষণ করা। যতক্ষণ ব্যবহারকারী আপনার অ্যাপে সক্রিয়ভাবে সাইন ইন থাকে, ততক্ষণ আপনি তাদের জন্য একটি রিস্টোর কী তৈরি করতে পারেন।
প্রশ্ন ৭. ব্যবহারকারী কি পুনরুদ্ধার কী মুছে ফেলতে পারবেন?
না, ব্যবহারকারীর পুনরুদ্ধার কী-এর উপর সরাসরি কোনও নিয়ন্ত্রণ নেই। অ্যাপ লজিক পুনরুদ্ধার কী পরিচালনার জন্য দায়ী।
নিরাপত্তার জন্য, আমরা সুপারিশ করছি যে যখনই কোনও ব্যবহারকারী সাইন আউট করবেন তখন অ্যাপটি স্বয়ংক্রিয়ভাবে কীটি মুছে ফেলবে। এটি নিশ্চিত করে যে পরের বার যখন তারা একই ডিভাইসে অ্যাপটি খুলবে, তখন তারা সঠিকভাবে সাইন আউট হবে এবং আবার সাইন ইন করার জন্য অনুরোধ করা হবে।
প্রশ্ন ৮। আমার ম্যানিফেস্টে allowBackup কে true তে সেট না করে কি আমি Restore Credentials ব্যবহার করতে পারি?
হ্যাঁ, allowBackup সত্যে সেট করা থাকুক বা না থাকুক, পুনরুদ্ধার শংসাপত্র বৈশিষ্ট্যটি কাজ করে।
প্রশ্ন ৯। একই অ্যাপে একাধিক লগ-ইন অ্যাকাউন্ট থাকা ব্যবহারকারীদের জন্য রিস্টোর ক্রেডেনশিয়াল কীভাবে কাজ করবে?
পুনরুদ্ধার শংসাপত্র বৈশিষ্ট্যটি একবারে শুধুমাত্র একটি অ্যাকাউন্টের সাথে কাজ করার জন্য ডিজাইন করা হয়েছে।