যদিও ক্রেডেনশিয়াল ম্যানেজার পাসওয়ার্ড-ভিত্তিক সাইন-ইন সমর্থন করে, আমরা পাসকি এবং সাইন ইন উইথ গুগল-এর মতো আধুনিক ও অধিক সুরক্ষিত প্রমাণীকরণ পদ্ধতিকে অগ্রাধিকার দেওয়ার জন্য দৃঢ়ভাবে সুপারিশ করি। এই পদ্ধতিগুলো উল্লেখযোগ্যভাবে উন্নত নিরাপত্তা এবং ব্যবহারকারীর অভিজ্ঞতা প্রদান করে। তবে, যদি আপনার অ্যাপ্লিকেশনে পাসওয়ার্ড সমর্থন করতেই হয়, তাহলে ক্রেডেনশিয়াল ম্যানেজারের মাধ্যমে পাসওয়ার্ড প্রয়োগ করার জন্য এই নির্দেশিকাটি একটি রেফারেন্স হিসেবে ব্যবহার করুন।
ক্রেডেনশিয়াল ম্যানেজার আপনার অ্যাপের জন্য ব্যবহারকারীর পরিচয়পত্র, যেমন ইউজারনেম এবং পাসওয়ার্ড, সংরক্ষণ ও পুনরুদ্ধার করার জন্য একটি সমন্বিত এপিআই (API) প্রদান করে। এটি ব্যবহারকারীদের জন্য সাইন-ইন প্রক্রিয়াকে সহজ করে এবং তাদের নির্বিঘ্নে ক্রেডেনশিয়াল প্রোভাইডার ব্যবহার করার সুযোগ দেয়।
পূর্বশর্ত
ক্রেডেনশিয়াল ম্যানেজারের পাসওয়ার্ড বাস্তবায়নটি অ্যান্ড্রয়েড ৪.৪ (এপিআই লেভেল ১৯) এবং এর পরবর্তী সংস্করণের ডিভাইসগুলোতে কাজ করে।
সংক্ষিপ্ত বিবরণ
এই নির্দেশিকাটি আপনার অ্যাপে পাসওয়ার্ড তৈরি, সংরক্ষণ এবং সাইন ইন করার জন্য প্রয়োজনীয় পরিবর্তনগুলোর উপর আলোকপাত করে।
- আপনার অ্যাপে নির্ভরতা যোগ করুন : প্রয়োজনীয় ক্রেডেনশিয়াল ম্যানেজার লাইব্রেরিগুলো যোগ করুন।
- ক্রেডেনশিয়াল ম্যানেজার ইনস্ট্যানশিয়েট করুন : একটি ক্রেডেনশিয়াল ম্যানেজার ইনস্ট্যান্স তৈরি করুন।
- ব্যবহারকারীর পাসওয়ার্ড সংরক্ষণ করুন : ব্যবহারকারীর পরিচয়পত্র নিরাপদে সংরক্ষণ করুন।
- পাসওয়ার্ড দিয়ে সাইন ইন করুন : লগইন করার জন্য সংরক্ষিত ক্রেডেনশিয়াল পুনরুদ্ধার করুন এবং ব্যবহার করুন।
- যেসব ফিল্ডে অটোফিল ব্যবহার করা উচিত, সেগুলো চিহ্নিত করুন : উন্নততর ব্যবহারকারী অভিজ্ঞতার জন্য অটোফিল ব্যবহার করুন।
- ডিজিটাল অ্যাসেট লিঙ্কের জন্য সমর্থন যোগ করুন : লিঙ্ক করা অ্যাপ এবং ওয়েবসাইট জুড়ে পাসওয়ার্ড শেয়ার করার সুবিধা যোগ করুন।
আপনার অ্যাপে নির্ভরতা যোগ করুন
আপনার অ্যাপ মডিউলের build.gradle ফাইলে নিম্নলিখিত ডিপেন্ডেন্সিগুলো যোগ করুন:
কোটলিন
dependencies { implementation("androidx.credentials:credentials:1.7.0-alpha02") }
গ্রোভি
dependencies { implementation "androidx.credentials:credentials:1.7.0-alpha02" }
ক্রেডেনশিয়াল ম্যানেজার ইনস্ট্যানশিয়েট করুন
আপনার অ্যাপ বা অ্যাক্টিভিটি কনটেক্সট ব্যবহার করে একটি CredentialManager অবজেক্ট তৈরি করুন।
// Use your app or activity context to instantiate a client instance of
// CredentialManager.
private val credentialManager = CredentialManager.create(context)
ব্যবহারকারীর পাসওয়ার্ড সংরক্ষণ করুন
যখন কোনো ব্যবহারকারী আপনার অ্যাপের মধ্যে সফলভাবে সাইন আপ করেন বা তাদের পাসওয়ার্ড আপডেট করেন, তখন এই তথ্যগুলো তাদের পাসওয়ার্ড ম্যানেজারে সংরক্ষণ করুন।
পাসওয়ার্ড অনুরোধ তৈরি করুন :
CreatePasswordRequestঅবজেক্টটিতে সংরক্ষণ করার জন্য ইউজারনেম এবং পাসওয়ার্ড থাকে। সংরক্ষণ প্রক্রিয়া শুরু করতেcredentialManager.createCredential()কল করুন।প্রতিক্রিয়া পরিচালনা করুন :
CreatePasswordResponseপ্রক্রিয়া করুন এবং যেকোনো ত্রুটি সামাল দিন (উদাহরণস্বরূপ, যদি ব্যবহারকারী অনুরোধটি বাতিল করে)।
suspend fun registerPassword(username: String, password: String) {
// Initialize a CreatePasswordRequest object.
val createPasswordRequest =
CreatePasswordRequest(id = username, password = password)
// Create credential and handle result.
coroutineScope {
try {
val result =
credentialManager.createCredential(
// Use an activity based context to avoid undefined
// system UI launching behavior.
activityContext,
createPasswordRequest
)
// Handle register password result
} catch (e: CreateCredentialException) {
handleFailure(e)
}
}
}
পাসওয়ার্ড দিয়ে সাইন ইন করুন
সংরক্ষিত ক্রেডেনশিয়াল পুনরুদ্ধার করতে, GetPasswordOption সহ একটি GetCredentialRequest তৈরি করুন এবং getCredential() কল করুন। নির্দিষ্ট ইউজার আইডির উপর ভিত্তি করে কোন পাসওয়ার্ডগুলি আনা হবে তা ফিল্টার করতে, ঐচ্ছিক ফিল্ড allowedUserIds ব্যবহার করুন।
val getPasswordOption = GetPasswordOption()
val credentialRequest = GetCredentialRequest.Builder()
.addCredentialOption(getPasswordOption)
.build()
যেসব ফিল্ডে অটোফিল ব্যবহার করা উচিত, সেগুলো চিহ্নিত করুন।
` android:isCredential অ্যাট্রিবিউটটি ক্রেডেনশিয়াল প্রোভাইডারদের অটোফিলের জন্য নির্ধারিত ফিল্ডগুলো শনাক্ত করতে সাহায্য করে, যার ফলে ব্যবহারকারীর অভিজ্ঞতা আরও মসৃণ হয়। এই অ্যাট্রিবিউটটি বিদ্যমান autofillHints পরিপূরক হিসেবে কাজ করে।
নির্দিষ্ট কিছু ফিল্ডকে অটোফিলের জন্য নির্দেশ করার সুবিধাগুলোর মধ্যে রয়েছে:
- স্বয়ংক্রিয় পূরণের নির্ভুলতা উন্নত করা হয়েছে : এটি পাসওয়ার্ড ম্যানেজার এবং অ্যান্ড্রয়েড সিস্টেমকে ক্রেডেনশিয়ালের জন্য নির্ধারিত ফিল্ডগুলো আরও ভালোভাবে শনাক্ত করতে সাহায্য করে।
- উন্নত ব্যবহারকারী অভিজ্ঞতা : এর ফলে স্বয়ংক্রিয় পূরণের পরামর্শগুলো আরও মসৃণ ও নির্ভরযোগ্য হতে পারে।
নিম্নলিখিত উদাহরণে দেখানো অনুযায়ী username এবং password ফিল্ডে isCredential অ্যাট্রিবিউটটি অন্তর্ভুক্ত করুন:
<EditText
android:id="@+id/username_edittext"
android:autofillHints="username"
android:isCredential="true" />
<EditText
android:id="@+id/password_edittext"
android:inputType="textPassword"
android:autofillHints="password"
android:isCredential="true" />
বিকল্পভাবে, নিম্নলিখিত কোড স্নিপেটে দেখানো অনুযায়ী প্রোগ্রাম্যাটিকভাবে অ্যাট্রিবিউটটি যোগ করুন:
if (android.os.Build.VERSION.SDK_INT >=
android.os.Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { // Android 14
usernameEditText.isCredential = true
passwordEditText.isCredential = true
}
ডিজিটাল অ্যাসেট লিঙ্কের জন্য সমর্থন যোগ করুন
পাসওয়ার্ড ম্যানেজারের সাথে সামঞ্জস্য নিশ্চিত করতে, আপনাকে আপনার অ্যাপ এবং ওয়েবসাইটের মধ্যে ডিজিটাল অ্যাসেট লিঙ্ক কনফিগার করতে হবে। এর ফলে উভয় প্ল্যাটফর্মে নিরাপদে ক্রেডেনশিয়াল শেয়ার করা যায়।