আপনি Firebase Authentication ব্যবহার করে কোনও ব্যবহারকারীকে সাইন-ইন করার জন্য একটি লিঙ্ক সহ ইমেল পাঠাতে পারেন যেটিতে ক্লিক করে তিনি সাইন-ইন করতে পারবেন। এই প্রসেসে, ব্যবহারকারীর ইমেল আইডিও যাচাই করা হয়।
ইমেল দিয়ে সাইন-ইন করার অনেক সুবিধা আছে:
- সহজ সাইন-আপ ও সাইন-ইন প্রসেস।
- বিভিন্ন অ্যাপ্লিকেশনে পাসওয়ার্ড আবার ব্যবহার করার ঝুঁকি কম, যা ভালভাবে বেছে নেওয়া পাসওয়ার্ডের সুরক্ষাকেও দুর্বল করে দিতে পারে।
- ব্যবহারকারীকে যাচাই করার পাশাপাশি তিনি যে ইমেল আইডির বৈধ মালিক তা যাচাই করার ক্ষমতা।
- সাইন-ইন করার জন্য ব্যবহারকারীর শুধু অ্যাক্সেস করা যায় এমন একটি ইমেল অ্যাকাউন্ট প্রয়োজন। ফোন নম্বর বা সোশ্যাল মিডিয়া অ্যাকাউন্টের মালিকানা থাকার প্রয়োজন নেই।
- ব্যবহারকারীকে পাসওয়ার্ড দিতে (বা মনে রাখতে) হবে না, এর ফলে তিনি নিরাপদে সাইন-ইন করতে পারবেন। মোবাইল ডিভাইসে পাসওয়ার্ড দেওয়া বেশ কঠিন হতে পারে।
- আগে ইমেল শনাক্তকারী (পাসওয়ার্ড বা ফেডারেটেড) দিয়ে সাইন-ইন করেছেন এমন কোনও বর্তমান ব্যবহারকারীকে শুধু ইমেল দিয়ে সাইন-ইন করার জন্য আপগ্রেড করা যেতে পারে। যেমন, কোনও ব্যবহারকারী পাসওয়ার্ড ভুলে গেলেও, পাসওয়ার্ড রিসেট না করেই সাইন-ইন করতে পারবেন।
শুরু করার আগে
আপনার Android প্রোজেক্ট সেট-আপ করা
আপনি আগে থেকে না করে থাকলে, আপনার Android প্রোজেক্টে Firebase যোগ করুন।
আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে (সাধারণত
<project>/<app-module>/build.gradle.ktsবা<project>/<app-module>/build.gradle), Android-এর জন্য Firebase Authentication লাইব্রেরির ডিপেন্ডেন্সি যোগ করুন। লাইব্রেরি ভার্সনিং কন্ট্রোল করতে Firebase Android BoM ব্যবহার করার সাজেশন দিই।এছাড়াও, Firebase Authentication সেট-আপ করার অংশ হিসেবে, আপনাকে নিজের অ্যাপে Google Play পরিষেবা SDK যোগ করতে হবে।
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.0.0")) // Add the dependency for the Firebase Authentication library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-auth")
// Also add the dependency for the Google Play services library and specify its version implementation("com.google.android.gms:play-services-auth:22.0.0") }Firebase Android BoM ব্যবহার করার মাধ্যমে, আপনার অ্যাপ সবসময় Firebase Android লাইব্রেরির মানানসই ভার্সন ব্যবহার করবে।
(বিকল্প) BoM ব্যবহার না করে Firebase লাইব্রেরি নির্ভরতা যোগ করুন
আপনি Firebase BoM ব্যবহার না করার বিকল্প বেছে নিলে, আপনাকে অবশ্যই এর ডিপেন্ডেন্সি লাইনে প্রতিটি Firebase লাইব্রেরি ভার্সন উল্লেখ করতে হবে।
মনে রাখবেন, আপনার অ্যাপে একাধিক Firebase লাইব্রেরি ব্যবহার করলে, লাইব্রেরি ভার্সন ম্যানেজ করার জন্য আমরা BoM ব্যবহার করার জন্য অত্যন্ত সাজেস্ট করি, এটি নিশ্চিত করে যে সব ভার্সনই মানানসই।
dependencies { // Add the dependency for the Firebase Authentication library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-auth:25.0.0")
// Also add the dependency for the Google Play services library and specify its version implementation("com.google.android.gms:play-services-auth:22.0.0") }
আপনার Firebase প্রোজেক্টের জন্য ইমেল লিঙ্ক সাইন-ইন চালু করা
ইমেল লিঙ্ক ব্যবহার করে ব্যবহারকারীদের সাইন-ইন করতে দিতে, আপনাকে প্রথমে Firebase প্রোজেক্টের জন্য ইমেল পরিষেবা প্রদানকারী এবং ইমেল লিঙ্ক সাইন-ইন পদ্ধতি চালু করতে হবে:
Firebase কনসোলে, নিরাপত্তা > যাচাইকরণ বিকল্পে যান।
সাইন-ইন পদ্ধতি ট্যাবে, ইমেল/পাসওয়ার্ড সাইন-ইন প্রোভাইডার চালু করুন। মনে রাখবেন, ইমেল লিঙ্ক সাইন-ইন ব্যবহার করতে হলে ইমেল/পাসওয়ার্ড সাইন-ইন চালু করতে হবে।
একই বিভাগে, ইমেল লিঙ্ক (পাসওয়ার্ড ছাড়া সাইন-ইন) সাইন-ইন পরিষেবা চালু করুন।
সেভ করুন বিকল্পে ক্লিক করুন।
ব্যবহারকারীর ইমেল আইডিতে যাচাইকরণের লিঙ্ক পাঠানো
পরিচয় যাচাইকরণ ফ্লো শুরু করতে, ব্যবহারকারীকে এমন একটি ইন্টারফেস দিন যা
ব্যবহারকারীকে তার ইমেল আইডি দিতে প্রম্পট করে এবং তারপরে
sendSignInLinkToEmail-কে কল করে Firebase-কে অনুরোধ করে যে সেটি যেন ব্যবহারকারীর
ইমেলে পরিচয় যাচাইকরণ লিঙ্ক পাঠায়।
ActionCodeSettings অবজেক্ট তৈরি করুন, যা Firebase-কে ইমেল লিঙ্ক তৈরি করার নির্দেশাবলী প্রদান করে। নিম্নলিখিত ফিল্ড সেট করুন:
url: এম্বেড করার জন্য ডিপ লিঙ্ক এবং অতিরিক্ত কোনও স্টেট পাস করতে হবে কিনা। আপনি আগে থেকে না করে থাকলে, অনুমোদিত ডোমেনের তালিকায় লিঙ্কের ডোমেন যোগ করুন:Firebase কনসোলে, নিরাপত্তা > অনুমোদন > সেটিংস ট্যাব বিকল্পে যান।
অনুমোদিত ডোমেন বিভাগে, ডোমেন যোগ করুন বিকল্পে ক্লিক করুন এবং লিঙ্কের ডোমেন যোগ করুন।
ব্যবহারকারীর ডিভাইসে অ্যাপ ইনস্টল করা না থাকলে এবং অ্যাপ ইনস্টল করা না গেলে, লিঙ্কটি ব্যবহারকারীকে এই URL-এ রিডাইরেক্ট করবে।
androidPackageNameওiOSBundleId: Firebase Authentication-কে নির্ধারণ করতে সাহায্য করে যে এটি শুধুমাত্র ওয়েব বা মোবাইল লিঙ্ক তৈরি করবে কিনা যা Android বা Apple ডিভাইসে খোলা হয়।handleCodeInApp: 'সত্য' হিসেবে সেট করা আছে। অন্যান্য আউট-অফ-ব্যান্ড ইমেল অ্যাকশনের (পাসওয়ার্ড রিসেট ও ইমেল যাচাইকরণ) মতো সাইন-ইন অপারেশন অ্যাপেই সম্পূর্ণ করতে হবে। এর কারণ হল, ফ্লোয়ের শেষে, ব্যবহারকারীকে সাইন-ইন করতে হবে এবং অ্যাপের মধ্যে তার Auth স্টেট সেভ করা থাকবে।linkDomain: কোনও প্রজেক্টের জন্য কাস্টম Hosting লিঙ্ক ডোমেন নির্দিষ্ট করা থাকলে, নির্দিষ্ট মোবাইল অ্যাপের মাধ্যমে লিঙ্কটি খোলার সময় কোনটি ব্যবহার করতে হবে তা নির্দিষ্ট করুন। অন্যথায়, ডিফল্ট ডোমেন অটোমেটিক বেছে নেওয়া হবে (যেমন, )।PROJECT_ID.firebaseapp.comdynamicLinkDomain: শীঘ্রই বন্ধ হয়ে যাবে। এই প্যারামিটার নির্দিষ্ট করবেন না।
Kotlin
val actionCodeSettings = actionCodeSettings { // URL you want to redirect back to. The domain (www.example.com) for this // URL must be whitelisted in the Firebase Console. url = "https://www.example.com/finishSignUp?cartId=1234" // This must be true handleCodeInApp = true setIOSBundleId("com.example.ios") setAndroidPackageName( "com.example.android", true, // installIfNotAvailable "12", // minimumVersion ) }
Java
ActionCodeSettings actionCodeSettings = ActionCodeSettings.newBuilder() // URL you want to redirect back to. The domain (www.example.com) for this // URL must be whitelisted in the Firebase Console. .setUrl("https://www.example.com/finishSignUp?cartId=1234") // This must be true .setHandleCodeInApp(true) .setIOSBundleId("com.example.ios") .setAndroidPackageName( "com.example.android", true, /* installIfNotAvailable */ "12" /* minimumVersion */) .build();
ActionCodeSettings সম্পর্কে আরও জানতে, ইমেল অ্যাকশনে স্টেট পাস করা বিভাগটি দেখুন।
ব্যবহারকারীর ইমেল আইডি লিখুন।
ব্যবহারকারীর ইমেলে যাচাইকরণ লিঙ্ক পাঠান এবং ব্যবহারকারী একই ডিভাইসে ইমেল সাইন-ইন সম্পূর্ণ করলে ব্যবহারকারীর ইমেল আইডি সেভ করুন।
Kotlin
Firebase.auth.sendSignInLinkToEmail(email, actionCodeSettings) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d(TAG, "Email sent.") } }
Java
FirebaseAuth auth = FirebaseAuth.getInstance(); auth.sendSignInLinkToEmail(email, actionCodeSettings) .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Log.d(TAG, "Email sent."); } } });
ইমেল লিঙ্কের মাধ্যমে সাইন-ইন করা সম্পূর্ণ করুন
নিরাপত্তা সংক্রান্ত উদ্বেগ
কোনও অনাকাঙ্ক্ষিত ব্যবহারকারী বা অনাকাঙ্ক্ষিত ডিভাইসে সাইন-ইন লিঙ্ক ব্যবহার করে সাইন-ইন করা আটকাতে, Firebase Authentication সাইন-ইন ফ্লো সম্পূর্ণ করার সময় ব্যবহারকারীর ইমেল আইডি প্রদান করতে বলে। সাইন-ইন করার প্রক্রিয়া সম্পূর্ণ হতে হলে, এই ইমেল আইডির সাথে সেই আইডিটি মিলতে হবে যেখানে সাইন-ইন লিঙ্কটি আসল পাঠানো হয়েছিল।
আপনি সাইন-ইন ইমেল পাঠানোর সময়, যে ডিভাইস থেকে লিঙ্কটি অনুরোধ করা হয়েছে সেই একই ডিভাইসে সাইন-ইন লিঙ্ক খোলা ব্যবহারকারীদের জন্য, তাদের ইমেল আইডি লোকালি সেভ করে - যেমন SharedPreferences ব্যবহার করে - এই ফ্লোটি স্ট্রিমলাইন করতে পারবেন। তারপর, ফ্লো সম্পূর্ণ করতে এই ঠিকানা ব্যবহার করুন। রিডাইরেক্ট URL প্যারামিটারে ব্যবহারকারীর ইমেল আইডি পাস করবেন না এবং এটি আবার ব্যবহার করবেন না, কারণ এটি সেশন ইনজেকশন চালু করতে পারে।
সাইন-ইন প্রসেস সম্পূর্ণ হওয়ার পরে, সাইন-ইন করার কোনও আগের যাচাই না করা পদ্ধতি ব্যবহারকারীর অ্যাকাউন্ট থেকে সরিয়ে দেওয়া হবে এবং আগে থেকে থাকা সেশন বাতিল করা হবে। যেমন, যদি কেউ আগে একই ইমেল ও পাসওয়ার্ড দিয়ে যাচাই না করা অ্যাকাউন্ট তৈরি করে থাকেন, তাহলে সেই ব্যবহারকারীর পাসওয়ার্ড সরিয়ে দেওয়া হবে। এর ফলে, যে প্রতারক মালিকানা দাবি করে যাচাই না করা অ্যাকাউন্ট তৈরি করেছে, সে যাচাই না করা ইমেল ও পাসওয়ার্ড দিয়ে আবার সাইন-ইন করতে পারবে না।
এছাড়াও, নিশ্চিত করুন যে আপনি প্রোডাকশনে একটি HTTPS URL ব্যবহার করছেন যাতে আপনার লিঙ্কটি সম্ভাব্যভাবে মধ্যস্থতাকারী সার্ভার দ্বারা ইন্টারসেপ্ট করা না হয়।
Android অ্যাপে সাইন-ইন করা
Firebase Authentication, Firebase Hosting ব্যবহার করে মোবাইল ডিভাইসে ইমেল লিঙ্ক পাঠায়। মোবাইল অ্যাপ্লিকেশনের মাধ্যমে সাইন-ইন সম্পূর্ণ করার জন্য, ইনকামিং অ্যাপ্লিকেশন লিঙ্ক শনাক্ত করতে, অন্তর্নিহিত ডিপ লিঙ্ক পার্স করতে এবং তারপরে সাইন-ইন সম্পূর্ণ করতে অ্যাপ্লিকেশনটিকে কনফিগার করতে হবে। আরও জানতে, Android অ্যাপ লিঙ্ক সংক্রান্ত ডকুমেন্টেশন দেখুন।
কনফিগার করুন Firebase Hosting
মোবাইল অ্যাপ্লিকেশনে খোলার জন্য তৈরি করা ও পাঠানো লিঙ্কের ক্ষেত্রে Firebase Authentication Firebase Hosting ডোমেন ব্যবহার করে। আপনার জন্য আগে থেকেই একটি ডিফল্ট Firebase Hosting ডোমেন কনফিগার করা হয়েছে।
Firebase Hosting ডোমেন কনফিগার করুন:
Firebase কনসোলে, হোস্টিং ও সার্ভারলেস > হোস্টিং বিকল্পে যান।
মোবাইল অ্যাপ্লিকেশনে খোলার ইমেল লিঙ্কের জন্য ডিফল্ট ডোমেন ব্যবহার করতে চাইলে, আপনার ডিফল্ট সাইটে যান এবং আপনার ডিফল্ট Hosting ডোমেনটি দেখে নিন। ডিফল্ট Hosting ডোমেন সাধারণত এই ধরনের হয়:
.PROJECT_ID.firebaseapp.comইনকামিং লিঙ্ক ইন্টারসেপ্ট করার জন্য আপনার অ্যাপ কনফিগার করার সময় এই ভ্যালু প্রয়োজন হবে।
ইমেল লিঙ্কের জন্য কাস্টম ডোমেন ব্যবহার করতে চাইলে, আপনি Firebase Hosting-এর সাথে একটি রেজিস্টার করতে পারেন এবং লিঙ্কের ডোমেনের জন্য সেটি ব্যবহার করতে পারেন।
Android অ্যাপ্লিকেশন কনফিগার করা:
আপনার Android অ্যাপ্লিকেশন থেকে এইসব লিঙ্ক ম্যানেজ করার জন্য, আপনার অ্যাপের প্যাকেজের নাম Firebase কনসোল প্রোজেক্ট সেটিংসে উল্লেখ করতে হবে। এছাড়াও, অ্যাপ্লিকেশন সার্টিফিকেটের SHA-1 এবং SHA-256 প্রদান করতে হবে।
আপনি যদি চান যে এইসব লিঙ্ক কোনও নির্দিষ্ট অ্যাক্টিভিটিতে রিডাইরেক্ট করুক, তাহলে আপনাকে
AndroidManifest.xmlফাইলে একটি ইনটেন্ট ফিল্টার কনফিগার করতে হবে। ইন্টেন্ট ফিল্টার আপনার ডোমেনের ইমেল লিঙ্ক ক্যাচ করতে পারবে।AndroidManifest.xml-এ:<intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="https" android:host="<PROJECT_ID>.firebaseapp.com or your custom domain" android:pathPrefix="/__/auth/links" /> </intent-filter>ব্যবহারকারীরা
/__/auth/linksপাথ ও স্কিম এবং আপনার নির্দিষ্ট করা হোস্ট সহ কোনও হোস্টিং লিঙ্ক খুললে, আপনার অ্যাপ এই ইনটেন্ট ফিল্টার সহ অ্যাক্টিভিটি শুরু করবে, যাতে লিঙ্কটি হ্যান্ডেল করা যায়।
লিঙ্ক যাচাই করে সাইন-ইন করুন
উপরে বর্ণিত লিঙ্কটি পাওয়ার পরে, এটি ইমেল লিঙ্ক যাচাইকরণের জন্য কিনা তা যাচাই করুন এবং সাইন-ইন প্রসেস সম্পূর্ণ করুন।
Kotlin
val auth = Firebase.auth val intent = intent val emailLink = intent.data.toString() // Confirm the link is a sign-in with email link. if (auth.isSignInWithEmailLink(emailLink)) { // Retrieve this from wherever you stored it val email = "someemail@domain.com" // The client SDK will parse the code from the link for you. auth.signInWithEmailLink(email, emailLink) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d(TAG, "Successfully signed in with email link!") val result = task.result // You can access the new user via result.getUser() // Additional user info profile *not* available via: // result.getAdditionalUserInfo().getProfile() == null // You can check if the user is new or existing: // result.getAdditionalUserInfo().isNewUser() } else { Log.e(TAG, "Error signing in with email link", task.exception) } } }
Java
FirebaseAuth auth = FirebaseAuth.getInstance(); Intent intent = getIntent(); String emailLink = intent.getData().toString(); // Confirm the link is a sign-in with email link. if (auth.isSignInWithEmailLink(emailLink)) { // Retrieve this from wherever you stored it String email = "someemail@domain.com"; // The client SDK will parse the code from the link for you. auth.signInWithEmailLink(email, emailLink) .addOnCompleteListener(new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { Log.d(TAG, "Successfully signed in with email link!"); AuthResult result = task.getResult(); // You can access the new user via result.getUser() // Additional user info profile *not* available via: // result.getAdditionalUserInfo().getProfile() == null // You can check if the user is new or existing: // result.getAdditionalUserInfo().isNewUser() } else { Log.e(TAG, "Error signing in with email link", task.getException()); } } }); }
Apple অ্যাপ্লিকেশনে ইমেল লিঙ্ক দিয়ে সাইন-ইন কীভাবে ম্যানেজ করবেন সেই সম্পর্কে আরও জানতে, Apple প্ল্যাটফর্ম গাইড দেখুন।
ওয়েব অ্যাপ্লিকেশনে ইমেল লিঙ্কের মাধ্যমে সাইন-ইন কীভাবে ম্যানেজ করতে হয় তা জানতে, ওয়েব গাইড দেখুন।
ইমেল লিঙ্কের মাধ্যমে লিঙ্ক করা/আবার যাচাইকরণ করা
এছাড়াও, আপনি এই যাচাইকরণ পদ্ধতিটি আগে থেকে থাকা কোনও ব্যবহারকারীর সাথে লিঙ্ক করতে পারেন। যেমন কোনও ব্যবহারকারী আগে ফোন নম্বরের মতো অন্য কোনও পরিষেবা প্রদানকারীর সাথে যাচাই করিয়ে থাকলে, তিনি নিজের বর্তমান অ্যাকাউন্টে সাইন-ইন করার এই পদ্ধতি যোগ করতে পারবেন।
অপারেশনের দ্বিতীয় অংশে পার্থক্য দেখা যাবে:
Kotlin
// Construct the email link credential from the current URL. val credential = EmailAuthProvider.getCredentialWithLink(email, emailLink) // Link the credential to the current user. Firebase.auth.currentUser!!.linkWithCredential(credential) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d(TAG, "Successfully linked emailLink credential!") val result = task.result // You can access the new user via result.getUser() // Additional user info profile *not* available via: // result.getAdditionalUserInfo().getProfile() == null // You can check if the user is new or existing: // result.getAdditionalUserInfo().isNewUser() } else { Log.e(TAG, "Error linking emailLink credential", task.exception) } }
Java
// Construct the email link credential from the current URL. AuthCredential credential = EmailAuthProvider.getCredentialWithLink(email, emailLink); // Link the credential to the current user. auth.getCurrentUser().linkWithCredential(credential) .addOnCompleteListener(new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { Log.d(TAG, "Successfully linked emailLink credential!"); AuthResult result = task.getResult(); // You can access the new user via result.getUser() // Additional user info profile *not* available via: // result.getAdditionalUserInfo().getProfile() == null // You can check if the user is new or existing: // result.getAdditionalUserInfo().isNewUser() } else { Log.e(TAG, "Error linking emailLink credential", task.getException()); } } });
এছাড়াও, কোনও সংবেদনশীল অপারেশন চালানোর আগে ইমেল লিঙ্ক ব্যবহারকারীকে আবার যাচাই করতে এটি ব্যবহার করা যেতে পারে।
Kotlin
// Construct the email link credential from the current URL. val credential = EmailAuthProvider.getCredentialWithLink(email, emailLink) // Re-authenticate the user with this credential. Firebase.auth.currentUser!!.reauthenticateAndRetrieveData(credential) .addOnCompleteListener { task -> if (task.isSuccessful) { // User is now successfully reauthenticated } else { Log.e(TAG, "Error reauthenticating", task.exception) } }
Java
// Construct the email link credential from the current URL. AuthCredential credential = EmailAuthProvider.getCredentialWithLink(email, emailLink); // Re-authenticate the user with this credential. auth.getCurrentUser().reauthenticateAndRetrieveData(credential) .addOnCompleteListener(new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { // User is now successfully reauthenticated } else { Log.e(TAG, "Error reauthenticating", task.getException()); } } });
তবে, ফ্লোটি অন্য একটি ডিভাইসে শেষ হতে পারে যেখানে আসল ব্যবহারকারী লগ-ইন করেননি, তাই এই ফ্লোটি সম্পূর্ণ নাও হতে পারে। সেই ক্ষেত্রে, ব্যবহারকারীকে একটি এরর মেসেজ দেখানো হতে পারে যাতে তিনি একই ডিভাইসে লিঙ্কটি খুলতে বাধ্য হন। অপারেশনের ধরন এবং ব্যবহারকারীর UID সম্পর্কে তথ্য প্রদান করতে লিঙ্কে কিছু স্টেট পাস করা যেতে পারে।
পুরনো হয়ে গেছে: Firebase Dynamic Links-ভিত্তিক যাচাইকরণ
ইমেল লিঙ্ক যাচাইকরণ আগে Firebase Dynamic Links-এর উপর নির্ভর করত, যা ২৫ আগস্ট, ২০২৫-এ বন্ধ হয়ে যাবে।
আমরা Firebase Authentication Android SDK v23.2.0+ এবং Firebase BoM v33.9.0+-এ একটি বিকল্প সমাধান প্রকাশ করেছি।
আপনার অ্যাপে পুরনো স্টাইলের লিঙ্ক ব্যবহার করা হলে, আপনাকে নতুন Firebase Hosting ভিত্তিক সিস্টেমে অ্যাপ মাইগ্রেট করতে হবে।
পুরনো হয়ে গেছে: ইমেল-পাসওয়ার্ড ও ইমেল লিঙ্কের মধ্যে পার্থক্য করা
আপনি ১৫ সেপ্টেম্বর, ২০২৩ তারিখে বা তার পরে আপনার প্রোজেক্ট তৈরি করে থাকলে, ডিফল্ট হিসেবে ইমেল এনুমেরেশন
সুরক্ষা চালু করা থাকে। এই ফিচারটি আপনার
প্রজেক্টের ব্যবহারকারীর অ্যাকাউন্টের নিরাপত্তা উন্নত করে, কিন্তু এটি fetchSignInMethodsForEmail()
পদ্ধতি বন্ধ করে দেয়, যা আমরা আগে শনাক্তকারী-ফার্স্ট ফ্লো প্রয়োগ করার জন্য সাজেস্ট করেছিলাম।
যদিও আপনি নিজের প্রোজেক্টের জন্য ইমেল এনুমেরেশন সুরক্ষা বন্ধ করতে পারবেন, তবে আমরা এটি না করার পরামর্শ দিই।
আরও বিবরণের জন্য ইমেল এনুমেরেশন সুরক্ষা সম্পর্কিত ডকুমেন্টেশন দেখুন।
পরবর্তী ধাপ
কোনও ব্যবহারকারী প্রথমবার সাইন-ইন করার পরে, একটি নতুন ব্যবহারকারীর অ্যাকাউন্ট তৈরি করা হয় এবং ক্রেডেনশিয়ালের সাথে লিঙ্ক করা হয়—অর্থাৎ, ব্যবহারকারীর নাম এবং পাসওয়ার্ড, ফোন নম্বর বা ব্যবহারকারী যে তথ্য দিয়ে সাইন-ইন করেছেন তা প্রদানকারীর তথ্য। এই নতুন অ্যাকাউন্ট আপনার Firebase প্রোজেক্টের অংশ হিসেবে স্টোর করা হয় এবং ব্যবহারকারী কীভাবে সাইন-ইন করেছেন তা নির্বিশেষে, আপনার প্রোজেক্টের প্রতিটি অ্যাপ জুড়ে কোনও ব্যবহারকারীকে শনাক্ত করতে ব্যবহার করা যেতে পারে।
-
আপনার অ্যাপে, আপনি
FirebaseUserঅবজেক্ট থেকে ব্যবহারকারীর প্রাথমিক প্রোফাইল সংক্রান্ত তথ্য পেতে পারেন। ব্যবহারকারীদের ম্যানেজ করা দেখুন। আপনার Firebase Realtime Database এবং Cloud Storage নিরাপত্তা বিধিতে, আপনি
authভেরিয়েবল থেকে সাইন-ইন করা ব্যবহারকারীর অনন্য ব্যবহারকারী আইডি পেতে এবং ব্যবহারকারী কোন ডেটা অ্যাক্সেস করতে পারবেন তা নিয়ন্ত্রণ করতে এটি ব্যবহার করতে পারবেন।
আপনি আগে থেকে থাকা ব্যবহারকারীর অ্যাকাউন্টের সাথে অনুমোদন প্রদানকারীর ক্রেডেনশিয়াল লিঙ্ক করে একাধিক অনুমোদন প্রদানকারীর মাধ্যমে আপনার অ্যাপে সাইন-ইন করার জন্য ব্যবহারকারীদের অনুমতি দিতে পারেন।
কোনও ব্যবহারকারীকে সাইন-আউট করতে,
signOut-এ কল করুন:
Kotlin
Firebase.auth.signOut()
Java
FirebaseAuth.getInstance().signOut();