ফায়ারবেস (Firebase) এর Custom Authentication Providers ব্যবহার করে আপনি আপনার নিজস্ব অথেন্টিকেশন সিস্টেম তৈরি করতে পারেন, যা ফায়ারবেসের বিল্ট-ই Authentication Providers (যেমন Google, Facebook, ইত্যাদি) ছাড়াও অন্য কোনও থার্ড-পার্টি বা কাস্টম অথেন্টিকেশন সিস্টেমের মাধ্যমে ব্যবহারকারীকে লগইন বা সাইন-আপ করার সুযোগ দেয়।
ফায়ারবেস Custom Authentication সিস্টেমটি দুটি ধাপে কাজ করে:
- Backend: আপনি নিজের সার্ভারে ইউজারের সাইন-ইন বা সাইন-আপ তথ্য যাচাই করবেন এবং একটি ফায়ারবেস কাস্টম টোকেন তৈরি করবেন।
- Frontend: তারপর, এই কাস্টম টোকেনটি ফায়ারবেসের সাথে সাইন-ইন করার জন্য ক্লায়েন্ট (অ্যাপ) এ পাঠানো হবে।
নিচে কাস্টম অথেন্টিকেশন প্রোভাইডার ব্যবহার করার বিস্তারিত প্রক্রিয়া দেওয়া হলো।
১. কাস্টম অথেন্টিকেশন টোকেন তৈরি করা
ফায়ারবেসের কাস্টম অথেন্টিকেশন প্রোভাইডার ব্যবহারের জন্য, প্রথমে আপনাকে আপনার সার্ভার থেকে একটি Custom Token তৈরি করতে হবে। এই টোকেনটি ব্যবহারকারীকে ফায়ারবেসে লগইন করতে সহায়তা করবে।
১.১. সার্ভারে কাস্টম টোকেন তৈরি
Firebase Admin SDK ব্যবহার করে সার্ভার সাইডে কাস্টম টোকেন তৈরি করা হয়। Firebase Admin SDK Node.js, Java, Python ইত্যাদি ভাষায় উপলব্ধ।
নিম্নলিখিত Node.js কোডটি দেখুন, যা কাস্টম টোকেন তৈরি করে:
const admin = require('firebase-admin');
admin.initializeApp();
// Custom Authentication function
function createCustomToken(uid) {
return admin.auth().createCustomToken(uid)
.then((customToken) => {
console.log('Custom Token:', customToken);
return customToken; // এই টোকেনটি ক্লায়েন্টে পাঠাতে হবে
})
.catch((error) => {
console.log('Error creating custom token:', error);
});
}
// উদাহরণ হিসেবে একটি UID দিয়ে কাস্টম টোকেন তৈরি করা
createCustomToken('example-uid');
এখানে, createCustomToken() ফাংশনটি ইউজারের UID থেকে একটি কাস্টম টোকেন তৈরি করে। আপনি এই টোকেনটি ক্লায়েন্টে পাঠাতে পারেন।
১.২. Firebase Admin SDK ইনস্টল করা
Node.js প্রজেক্টে Firebase Admin SDK ইনস্টল করার জন্য:
npm install firebase-admin
এবার, আপনি সার্ভার সাইডে কাস্টম টোকেন তৈরি করতে সক্ষম হবেন এবং এই টোকেনটি ক্লায়েন্টে পাঠাতে পারবেন।
২. কাস্টম টোকেন দিয়ে ফায়ারবেসে সাইন-ইন করা
কাস্টম টোকেন প্রস্তুত হওয়ার পর, ক্লায়েন্ট সাইডে সেই টোকেন দিয়ে ফায়ারবেসে সাইন-ইন করা হবে। নিচে কিভাবে আপনি এই কাস্টম টোকেন দিয়ে ফায়ারবেসে সাইন-ইন করবেন তা দেখানো হলো।
২.১. Firebase SDK ইনস্টল করা
যদি আপনি Web বা Mobile অ্যাপ ব্যবহার করেন, তাহলে Firebase Authentication SDK ব্যবহার করতে হবে। এর জন্য আপনাকে ফায়ারবেস SDK ইনস্টল করতে হবে।
ওয়েব অ্যাপে:
npm install firebase
অ্যান্ড্রয়েড অ্যাপে:
build.gradle ফাইলে Firebase Authentication লাইব্রেরি যোগ করুন:
dependencies {
implementation 'com.google.firebase:firebase-auth:21.0.0'
}
২.২. কাস্টম টোকেন দিয়ে সাইন-ইন করা
এখন, কাস্টম টোকেন ক্লায়েন্টে ব্যবহার করে ফায়ারবেসে সাইন-ইন করা যাবে। উদাহরণস্বরূপ, যদি আপনি JavaScript ব্যবহার করেন:
import { getAuth, signInWithCustomToken } from "firebase/auth";
// Firebase authentication instance তৈরি
const auth = getAuth();
// আপনার সার্ভার থেকে কাস্টম টোকেন পাওয়া যাবে
const customToken = "your-custom-token-from-server";
// কাস্টম টোকেন দিয়ে সাইন-ইন করা
signInWithCustomToken(auth, customToken)
.then((userCredential) => {
// সাইন-ইন সফল হলে
const user = userCredential.user;
console.log('Logged in as:', user.displayName);
})
.catch((error) => {
// সাইন-ইন ব্যর্থ হলে
console.error('Error during sign-in:', error.message);
});
২.৩. অ্যান্ড্রয়েড অ্যাপে কাস্টম টোকেন দিয়ে সাইন-ইন
অ্যান্ড্রয়েড অ্যাপে কাস্টম টোকেন দিয়ে সাইন-ইন করার জন্য নিচের কোড ব্যবহার করুন:
FirebaseAuth mAuth = FirebaseAuth.getInstance();
// আপনার সার্ভার থেকে কাস্টম টোকেন প্রাপ্তি
String customToken = "your-custom-token-from-server";
// কাস্টম টোকেন দিয়ে সাইন-ইন করা
mAuth.signInWithCustomToken(customToken)
.addOnCompleteListener(this, task -> {
if (task.isSuccessful()) {
FirebaseUser user = mAuth.getCurrentUser();
// সাইন-ইন সফল হলে
Log.d("Auth", "User signed in: " + user.getDisplayName());
} else {
// সাইন-ইন ব্যর্থ হলে
Log.w("Auth", "signInWithCustomToken:failure", task.getException());
}
});
২.৪. আইওএস অ্যাপে কাস্টম টোকেন দিয়ে সাইন-ইন
আইওএস অ্যাপে কাস্টম টোকেন দিয়ে সাইন-ইন করার জন্য:
import Firebase
// FirebaseAuth instance
let auth = Auth.auth()
// আপনার সার্ভার থেকে কাস্টম টোকেন প্রাপ্তি
let customToken = "your-custom-token-from-server"
// কাস্টম টোকেন দিয়ে সাইন-ইন করা
auth.signIn(withCustomToken: customToken) { (user, error) in
if let error = error {
print("Error during sign-in: \(error.localizedDescription)")
} else {
// সাইন-ইন সফল হলে
print("User signed in: \(user?.displayName ?? "Unknown")")
}
}
৩. কাস্টম অথেন্টিকেশন ব্যবহারের সুবিধা
- ফ্লেক্সিবিলিটি: আপনি আপনার নিজস্ব অথেন্টিকেশন সিস্টেম তৈরি করতে পারেন, যেমন কাস্টম ইউজারনেম/পাসওয়ার্ড লগইন, OTP ভিত্তিক অথেন্টিকেশন, তৃতীয় পক্ষের API ইন্টিগ্রেশন ইত্যাদি।
- বিশ্বস্ততা: ফায়ারবেসের কাস্টম টোকেন ব্যবহারের মাধ্যমে আপনি ফায়ারবেসের নিরাপত্তা এবং বিশস্ততার সুবিধা গ্রহণ করতে পারেন।
- অন্যান্য সিস্টেমের সাথে ইন্টিগ্রেশন: আপনি যদি ইতিমধ্যেই আপনার সিস্টেমে একটি অথেন্টিকেশন ব্যবস্থা তৈরি করে থাকেন, তবে ফায়ারবেসের কাস্টম টোকেন ব্যবহারের মাধ্যমে তা ফায়ারবেসের সাথে ইন্টিগ্রেট করা সম্ভব।
সারাংশ
ফায়ারবেস Custom Authentication ব্যবহার করে আপনি আপনার নিজস্ব অথেন্টিকেশন সিস্টেম তৈরি করতে পারেন এবং ফায়ারবেসের সাথে সংযুক্ত করতে পারেন। এই প্রক্রিয়াতে, সার্ভার সাইডে কাস্টম টোকেন তৈরি করা হয়, যা ক্লায়েন্ট সাইডে পাঠিয়ে ফায়ারবেসে সাইন-ইন করা হয়। এটি আপনার অ্যাপে বিভিন্ন ধরনের অথেন্টিকেশন পদ্ধতি ব্যবহারের সুযোগ দেয়, যেমন কাস্টম ইউজারনেম/পাসওয়ার্ড লগইন বা থার্ড-পার্টি সিস্টেম ইন্টিগ্রেশন।
Read more