আপনার অ্যাপে ফেসবুক লগইন ইন্টিগ্রেট করার মাধ্যমে আপনি ব্যবহারকারীদের তাদের ফেসবুক অ্যাকাউন্ট ব্যবহার করে ফায়ারবেসে অথেন্টিকেট করার সুযোগ দিতে পারেন। আপনি সাইন-ইন ফ্লোটি সম্পন্ন করার জন্য ফায়ারবেস এসডিকে ব্যবহার করে, অথবা ম্যানুয়ালি ফেসবুক লগইন ফ্লোটি সম্পন্ন করে এবং এর ফলে প্রাপ্ত অ্যাক্সেস টোকেনটি ফায়ারবেসে পাঠিয়ে ফেসবুক লগইন ইন্টিগ্রেট করতে পারেন।
শুরু করার আগে
- আপনার জাভাস্ক্রিপ্ট প্রজেক্টে ফায়ারবেস যুক্ত করুন ।
- Facebook for Developers সাইট থেকে আপনার অ্যাপের জন্য অ্যাপ আইডি এবং অ্যাপ সিক্রেট সংগ্রহ করুন।
- আপনার Firebase প্রোজেক্টের জন্য সাইন-ইন প্রদানকারী হিসেবে Facebook Login সক্রিয় করুন:
- Firebase কনসোলে, Security > Authentication- এ যান।
- সাইন-ইন পদ্ধতি ট্যাবে, ফেসবুক সাইন-ইন প্রদানকারীকে সক্রিয় করুন এবং ফেসবুক থেকে প্রাপ্ত অ্যাপ আইডি ও অ্যাপ সিক্রেট উল্লেখ করুন।
- নিশ্চিত করুন যে আপনার OAuth রিডাইরেক্ট URI (উদাহরণস্বরূপ,
my-app-12345.firebaseapp.com/__/auth/handler) আপনার Facebook অ্যাপের সেটিংস পৃষ্ঠার 'Facebook for Developers' অংশে থাকা 'Product Settings > Facebook Login config'-এ অন্যতম একটি OAuth রিডাইরেক্ট URI হিসেবে তালিকাভুক্ত আছে।
Firebase SDK দিয়ে সাইন-ইন প্রক্রিয়াটি পরিচালনা করুন।
আপনি যদি একটি ওয়েব অ্যাপ তৈরি করেন, তবে ব্যবহারকারীদের ফেসবুক অ্যাকাউন্ট ব্যবহার করে ফায়ারবেসে তাদের প্রমাণীকরণের সবচেয়ে সহজ উপায় হলো ফায়ারবেস জাভাস্ক্রিপ্ট এসডিকে (SDK) দিয়ে সাইন-ইন প্রক্রিয়াটি পরিচালনা করা। (আপনি যদি নোড.জেএস (Node.js) বা অন্য কোনো নন-ব্রাউজার পরিবেশে কোনো ব্যবহারকারীকে প্রমাণীকরণ করতে চান, তবে আপনাকে সাইন-ইন প্রক্রিয়াটি ম্যানুয়ালি পরিচালনা করতে হবে।)
Firebase JavaScript SDK ব্যবহার করে সাইন-ইন প্রক্রিয়াটি পরিচালনা করতে, এই ধাপগুলো অনুসরণ করুন:
- Facebook প্রোভাইডার অবজেক্টের একটি ইনস্ট্যান্স তৈরি করুন:
Web
import { FacebookAuthProvider } from "firebase/auth"; const provider = new FacebookAuthP_create.js
Web
var provider = new firebase.auth.FacebookAuthProvider();
- ঐচ্ছিক : অথেনটিকেশন প্রোভাইডারের কাছ থেকে আপনি যে অতিরিক্ত OAuth 2.0 স্কোপগুলো অনুরোধ করতে চান, তা নির্দিষ্ট করুন। একটি স্কোপ যোগ করতে,
addScopeকল করুন। উদাহরণস্বরূপ:প্রমাণীকরণ প্রদানকারীর ডকুমেন্টেশন দেখুন।Web
provider.addScope('user_birthdacopes.js
Web
provider.addScope('user_birthdaebook.js
- ঐচ্ছিক : প্রাসঙ্গিক কাস্টম 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.ust_language_code.js
Web
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanindex.js
- ঐচ্ছিক : OAuth অনুরোধের সাথে আপনি যে অতিরিক্ত কাস্টম OAuth প্রদানকারী প্যারামিটারগুলি পাঠাতে চান তা নির্দিষ্ট করুন। একটি কাস্টম প্যারামিটার যোগ করতে, OAuth প্রদানকারী ডকুমেন্টেশনে নির্দিষ্ট করা কী (key) এবং সংশ্লিষ্ট ভ্যালু (value) সম্বলিত একটি অবজেক্ট দিয়ে ইনিশিয়ালাইজ করা প্রোভাইডারে
setCustomParametersকল করুন। উদাহরণস্বরূপ:সংরক্ষিত আবশ্যক OAuth প্যারামিটার অনুমোদিত নয় এবং উপেক্ষা করা হবে। আরও বিস্তারিত তথ্যের জন্য প্রমাণীকরণ প্রদানকারীর রেফারেন্স দেখুন।Web
provider.setCustomParameters({ 'display': ovider_params.js
Web
provider.setCustomParameters({ 'display': ; });facebook.js
- ফেসবুক প্রোভাইডার অবজেক্ট ব্যবহার করে ফায়ারবেসের সাথে প্রমাণীকরণ করুন। আপনি একটি পপ-আপ উইন্ডো খুলে অথবা সাইন-ইন পৃষ্ঠায় পুনঃনির্দেশ করে আপনার ব্যবহারকারীদের তাদের ফেসবুক অ্যাকাউন্ট দিয়ে সাইন ইন করতে বলতে পারেন। মোবাইল ডিভাইসের ক্ষেত্রে পুনঃনির্দেশ পদ্ধতিটিই বেশি পছন্দনীয়।
- পপ-আপ উইন্ডো দিয়ে সাইন ইন করতে,
signInWithPopupকল করুন:আরও লক্ষ্য করুন যে, আপনি ফেসবুক প্রোভাইডারের OAuth টোকেনটি পুনরুদ্ধার করতে পারেন, যা ফেসবুক এপিআই ব্যবহার করে অতিরিক্ত ডেটা আনার জন্য কাজে লাগানো যেতে পারে।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); ignin_popup.js
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; // ... k.js
এখানেই আপনি ত্রুটিগুলি ধরতে এবং সমাধান করতে পারবেন। ত্রুটি কোডগুলির তালিকার জন্য Auth Reference Docs দেখুন।
- সাইন-ইন পৃষ্ঠায় পুনঃনির্দেশিত হয়ে সাইন ইন করতে,
signInWithRedirectকল করুন: `signInWithRedirect` ব্যবহার করার সময় সর্বোত্তম অনুশীলনগুলি অনুসরণ করুন।তারপর, আপনার পেজ লোড হওয়ার সময়Web
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, edirect.js
Web
firebase.auth().signInWithRedirect(provider);
getRedirectResultকল করে আপনি Facebook প্রোভাইডারের OAuth টোকেনটিও পুনরুদ্ধার করতে পারেন:এখানেই আপনি ত্রুটিগুলি ধরতে এবং সমাধান করতে পারবেন। ত্রুটি কোডগুলির তালিকার জন্য Auth Reference Docs দেখুন।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); rect_result.js
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; // ... k.js
- পপ-আপ উইন্ডো দিয়ে সাইন ইন করতে,
ক্রোম এক্সটেনশনে ফায়ারবেস দিয়ে প্রমাণীকরণ করুন
আপনি যদি একটি ক্রোম এক্সটেনশন অ্যাপ তৈরি করেন, তাহলে অফস্ক্রিন ডকুমেন্টস গাইডটি দেখুন।
পরবর্তী পদক্ষেপ
কোনো ব্যবহারকারী প্রথমবার সাইন ইন করার পর, একটি নতুন ব্যবহারকারী অ্যাকাউন্ট তৈরি হয় এবং সেটি ব্যবহারকারীর সাইন ইন করার ক্রেডেনশিয়াল—অর্থাৎ, ইউজার নেম ও পাসওয়ার্ড, ফোন নম্বর, বা অথোরাইজেশন প্রোভাইডারের তথ্যের—সাথে লিঙ্ক করা হয়। এই নতুন অ্যাকাউন্টটি আপনার ফায়ারবেস প্রজেক্টের অংশ হিসেবে সংরক্ষিত থাকে এবং ব্যবহারকারী কীভাবে সাইন ইন করছেন তা নির্বিশেষে, আপনার প্রজেক্টের প্রতিটি অ্যাপে তাকে শনাক্ত করতে এটি ব্যবহার করা যেতে পারে।
আপনার অ্যাপগুলিতে, ব্যবহারকারীর অথেন্টিকেশন স্ট্যাটাস জানার জন্য প্রস্তাবিত উপায় হলো
Authঅবজেক্টে একটি অবজারভার সেট করা। এরপর আপনিUserঅবজেক্ট থেকে ব্যবহারকারীর প্রাথমিক প্রোফাইল তথ্য পেতে পারেন। ব্যবহারকারী ব্যবস্থাপনা (Manage Users) দেখুন।আপনার Firebase Realtime Database and Cloud Storage Security Rules- এ, আপনি
authভেরিয়েবল থেকে সাইন-ইন করা ব্যবহারকারীর অনন্য ইউজার আইডি পেতে পারেন এবং একজন ব্যবহারকারী কোন ডেটা অ্যাক্সেস করতে পারবে তা নিয়ন্ত্রণ করতে এটি ব্যবহার করতে পারেন।
কোনো ব্যবহারকারীকে সাইন আউট করতে, signOut কল করুন:
Web
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth)>.then(() = { // Sign-out successful. }).catch>((error) = { // An error hapign_out.js
Web
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });