আপনার অ্যাপে Facebook লগ-ইন ইন্টিগ্রেট করে, আপনার ব্যবহারকারীদের Facebook অ্যাকাউন্ট ব্যবহার করে Firebase-এর সাথে প্রমাণীকরণ করতে দিতে পারেন। আপনি Firebase SDK ব্যবহার করে সাইন-ইন ফ্লো সম্পূর্ণ করে অথবা Facebook লগ-ইন ফ্লো ম্যানুয়ালি সম্পূর্ণ করে এবং Firebase-এ ফলাফলস্বরূপ অ্যাক্সেস টোকেন পাস করে Facebook লগ-ইন ইন্টিগ্রেট করতে পারেন।
শুরু করার আগে
- আপনার JavaScript প্রোজেক্টে Firebase যোগ করুন।
- Facebook for Developers সাইট থেকে, আপনার অ্যাপের জন্য অ্যাপ আইডি ও অ্যাপ সিক্রেট পান।
-
আপনার Firebase প্রোজেক্টের জন্য সাইন-ইন পরিষেবা প্রদানকারী হিসেবে Facebook লগ-ইন চালু করুন:
- Firebase কনসোলে গিয়ে নিরাপত্তা > যাচাইকরণ বিকল্পে যান।
- সাইন-ইন পদ্ধতি ট্যাবে, Facebook সাইন-ইন প্রোভাইডার চালু করুন এবং Facebook থেকে পাওয়া অ্যাপ আইডি ও অ্যাপ সিক্রেট নির্দিষ্ট করুন।
-
আপনার OAuth রিডাইরেক্ট URI (যেমন,
my-app-12345.firebaseapp.com/__/auth/handler) যেন আপনার Facebook অ্যাপের সেটিংস পৃষ্ঠায় ডেভেলপারদের জন্য Facebook সাইটে প্রোডাক্ট সেটিংস > Facebook লগ-ইন কনফিগে আপনার OAuth রিডাইরেক্ট URI হিসেবে তালিকাভুক্ত থাকে।
Firebase SDK-এর মাধ্যমে সাইন-ইন ফ্লো ম্যানেজ করা
আপনি কোনও ওয়েব অ্যাপ তৈরি করলে, Firebase JavaScript SDK-এর মাধ্যমে Firebase-এর সাহায্যে আপনার ব্যবহারকারীদের Facebook অ্যাকাউন্ট দিয়ে সবচেয়ে সহজে যাচাই করার উপায় হল সাইন-ইন ফ্লো ম্যানেজ করা। (আপনি Node.js বা অন্যান্য নন-ব্রাউজার এনভায়রনমেন্টে কোনও ব্যবহারকারীকে যাচাই করতে চাইলে, আপনাকে সাইন-ইন ফ্লো ম্যানুয়ালি ম্যানেজ করতে হবে।)
Firebase JavaScript SDK-এর মাধ্যমে সাইন-ইন ফ্লো ম্যানেজ করতে, এইসব ধাপ অনুসরণ করুন:
- Facebook প্রদানকারী অবজেক্টের একটি ইনস্ট্যান্স তৈরি করুন:
Web
import { FacebookAuthProvider } from "firebase/auth"; const provider = new FacebookAuthProvider();
Web
var provider = new firebase.auth.FacebookAuthProvider();
- ঐচ্ছিক: অতিরিক্ত OAuth 2.0 স্কোপ নির্দিষ্ট করুন যা আপনি
যাচাইকরণ প্রদানকারীর কাছে অনুরোধ করতে চান। স্কোপ যোগ করতে, কল করুন
addScope। যেমন:যাচাইকরণ প্রদানকারী ডকুমেন্টেশন দেখুন।Web
provider.addScope('user_birthday');
Web
provider.addScope('user_birthday');
- ঐচ্ছিক: প্রাসঙ্গিক কাস্টম OAuth প্যারামিটার স্পষ্টভাবে পাস না করেই, ব্যবহারকারীর পছন্দের
ভাষায় প্রদানকারীর OAuth ফ্লো লোকাল করার জন্য, OAuth ফ্লো শুরু করার আগে Auth ইনস্ট্যান্সে
ল্যাঙ্গুয়েজ কোড আপডেট করুন। যেমন:
Web
import { getAuth } from "firebase/auth"; const auth = getAuth(); auth.languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // auth.useDeviceLanguage();
Web
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
- ঐচ্ছিক: OAuth অনুরোধের সাথে পাঠাতে চান এমন অতিরিক্ত কাস্টম OAuth প্রদানকারী প্যারামিটার
নির্দিষ্ট করুন। কাস্টম প্যারামিটার যোগ করতে, OAuth প্রদানকারীর ডকুমেন্টেশন এবং সংশ্লিষ্ট ভ্যালুতে
উল্লেখ করা কী সহ অবজেক্ট দিয়ে ইনিশিয়ালাইজ করা প্রোভাইডারে
setCustomParametersকল করুন। যেমন:রিজার্ভ করা প্রয়োজনীয় OAuth প্যারামিটার ব্যবহার করা যায় না এবং উপেক্ষা করা হবে। আরও বিবরণের জন্য প্রমাণীকরণ প্রদানকারী রেফারেন্স দেখুন।Web
provider.setCustomParameters({ 'display': 'popup' });
Web
provider.setCustomParameters({ 'display': 'popup' });
- Facebook প্রদানকারী অবজেক্ট ব্যবহার করে Firebase-এর মাধ্যমে যাচাই করুন। আপনি
পপ-আপ উইন্ডো খুলে অথবা সাইন-ইন পৃষ্ঠায় রিডাইরেক্ট করার মাধ্যমে
ব্যবহারকারীদের Facebook অ্যাকাউন্ট দিয়ে সাইন-ইন করার জন্য প্রম্পট করতে পারবেন। মোবাইল ডিভাইসে রিডাইরেক্ট করার পদ্ধতি
ব্যবহার করা ভাল।
- পপ-আপ উইন্ডোর মাধ্যমে সাইন-ইন করতে,
signInWithPopup-এ কল করুন:এছাড়াও, মনে রাখবেন যে আপনি Facebook প্রদানকারীর OAuth টোকেন পুনরুদ্ধার করতে পারবেন যা Facebook API ব্যবহার করে অতিরিক্ত ডেটা পেতে ব্যবহার করা যেতে পারে।Web
import { getAuth, signInWithPopup, FacebookAuthProvider } from "firebase/auth"; const auth = getAuth(); signInWithPopup(auth, provider) .then((result) => { // The signed-in user info. const user = result.user; // This gives you a Facebook Access Token. You can use it to access the Facebook API. const credential = FacebookAuthProvider.credentialFromResult(result); const accessToken = credential.accessToken; // IdP data available using getAdditionalUserInfo(result) // ... }) .catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // The AuthCredential type that was used. const credential = FacebookAuthProvider.credentialFromError(error); // ... });
Web
firebase .auth() .signInWithPopup(provider) .then((result) => { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // The signed-in user info. var user = result.user; // IdP data available in result.additionalUserInfo.profile. // ... // This gives you a Facebook Access Token. You can use it to access the Facebook API. var accessToken = credential.accessToken; // ... }) .catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
এছাড়াও, আপনি এখানে ভুল ধরতে ও সমাধান করতে পারবেন। সমস্যার কোডের তালিকা দেখতে Auth রেফারেন্স ডকুমেন্ট দেখুন।
- সাইন-ইন পৃষ্ঠায় রিডাইরেক্ট করার মাধ্যমে সাইন-ইন করতে,
signInWithRedirect-এ কল করুন: `signInWithRedirect` ব্যবহার করার সময় পেশাদার পদ্ধতি অনুসরণ করুন।এছাড়াও, আপনার পৃষ্ঠা লোড হলে,Web
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web
firebase.auth().signInWithRedirect(provider);
getRedirectResultকল করে Facebook প্রদানকারীর OAuth টোকেন রিট্রিভ করতে পারবেন:এছাড়াও, আপনি এখানে ভুল ধরতে ও সমাধান করতে পারবেন। সমস্যার কোডের তালিকা দেখতে Auth রেফারেন্স ডকুমেন্ট দেখুন।Web
import { getAuth, getRedirectResult, FacebookAuthProvider } from "firebase/auth"; const auth = getAuth(); getRedirectResult(auth) .then((result) => { // This gives you a Facebook Access Token. You can use it to access the Facebook API. const credential = FacebookAuthProvider.credentialFromResult(result); const token = credential.accessToken; const user = result.user; // IdP data available using getAdditionalUserInfo(result) // ... }).catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // AuthCredential type that was used. const credential = FacebookAuthProvider.credentialFromError(error); // ... });
Web
firebase.auth() .getRedirectResult() .then((result) => { if (result.credential) { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // This gives you a Facebook Access Token. You can use it to access the Facebook API. var token = credential.accessToken; // ... } // The signed-in user info. var user = result.user; // IdP data available in result.additionalUserInfo.profile. // ... }).catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
- পপ-আপ উইন্ডোর মাধ্যমে সাইন-ইন করতে,
Chrome এক্সটেনশনে Firebase-এর মাধ্যমে যাচাইকরণ
আপনি Chrome এক্সটেনশন অ্যাপ তৈরি করলে, অফস্ক্রিন ডকুমেন্ট গাইড দেখুন।
পরবর্তী ধাপ
কোনও ব্যবহারকারী প্রথমবার সাইন-ইন করার পরে, একটি নতুন ব্যবহারকারীর অ্যাকাউন্ট তৈরি করা হয় এবং ক্রেডেনশিয়ালের সাথে লিঙ্ক করা হয়—অর্থাৎ, ব্যবহারকারীর নাম এবং পাসওয়ার্ড, ফোন নম্বর বা ব্যবহারকারী যে তথ্য দিয়ে সাইন-ইন করেছেন তা প্রদানকারীর তথ্য। এই নতুন অ্যাকাউন্ট আপনার Firebase প্রোজেক্টের অংশ হিসেবে স্টোর করা হয় এবং ব্যবহারকারী কীভাবে সাইন-ইন করেছেন তা নির্বিশেষে, আপনার প্রোজেক্টের প্রতিটি অ্যাপ জুড়ে কোনও ব্যবহারকারীকে শনাক্ত করতে ব্যবহার করা যেতে পারে।
-
আপনার অ্যাপে, ব্যবহারকারীর অনুমোদনের স্ট্যাটাস জানার জন্য সাজেস্ট করা পদ্ধতি হল,
Authঅবজেক্টে একটি অবজ়ার্ভার সেট করা। আপনি তারপরেUserঅবজেক্ট থেকে ব্যবহারকারীর প্রাথমিক প্রোফাইল সংক্রান্ত তথ্য পেতে পারেন। ব্যবহারকারীদের ম্যানেজ করা দেখুন। আপনার Firebase Realtime Database এবং Cloud Storage নিরাপত্তা বিধিতে, আপনি
authভেরিয়েবল থেকে সাইন-ইন করা ব্যবহারকারীর অনন্য ব্যবহারকারী আইডি পেতে এবং ব্যবহারকারী কোন ডেটা অ্যাক্সেস করতে পারবেন তা নিয়ন্ত্রণ করতে এটি ব্যবহার করতে পারবেন।
আপনি আগে থেকে থাকা ব্যবহারকারীর অ্যাকাউন্টের সাথে অনুমোদন প্রদানকারীর ক্রেডেনশিয়াল লিঙ্ক করে একাধিক অনুমোদন প্রদানকারীর মাধ্যমে আপনার অ্যাপে সাইন-ইন করার জন্য ব্যবহারকারীদের অনুমতি দিতে পারেন।
কোনও ব্যবহারকারীকে সাইন-আউট করতে,
signOut-এ কল করুন:
Web
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Web
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });