আপনি আপনার অ্যাপে Facebook লগইন সংহত করে আপনার ব্যবহারকারীদের তাদের Facebook অ্যাকাউন্ট ব্যবহার করে Firebase-এর মাধ্যমে প্রমাণীকরণ করতে দিতে পারেন। সাইন-ইন ফ্লো চালানোর জন্য Firebase SDK ব্যবহার করে, অথবা ম্যানুয়ালি Facebook লগইন ফ্লো চালিয়ে এবং ফলস্বরূপ অ্যাক্সেস টোকেন Firebase-এ পাস করার মাধ্যমে আপনি Facebook লগইন সংহত করতে পারেন।
তুমি শুরু করার আগে
- আপনার JavaScript প্রকল্পে Firebase যোগ করুন ।
- Facebook for Developers সাইটে, আপনার অ্যাপের জন্য অ্যাপ আইডি এবং একটি অ্যাপ সিক্রেট পান।
- ফেসবুক লগইন সক্ষম করুন:
- Firebase কনসোলে , Auth বিভাগটি খুলুন।
- সাইন ইন পদ্ধতি ট্যাবে, Facebook সাইন-ইন পদ্ধতি সক্ষম করুন এবং আপনি Facebook থেকে যে অ্যাপ আইডি এবং অ্যাপ সিক্রেট পেয়েছেন তা নির্দিষ্ট করুন।
- তারপর, নিশ্চিত করুন যে আপনার OAuth রিডাইরেক্ট URI (যেমন
my-app-12345.firebaseapp.com/__/auth/handler
) আপনার OAuth রিডাইরেক্ট ইউআরআইগুলির মধ্যে একটি হিসাবে আপনার Facebook অ্যাপের সেটিংস পৃষ্ঠায় Facebook এর ডেভেলপারদের সাইটে প্রোডাক্টের জন্য তালিকাভুক্ত করা হয়েছে। সেটিংস > Facebook লগইন কনফিগারেশন।
Firebase SDK দিয়ে সাইন-ইন ফ্লো পরিচালনা করুন
আপনি যদি একটি ওয়েব অ্যাপ তৈরি করেন, তাহলে আপনার ব্যবহারকারীদের তাদের Facebook অ্যাকাউন্ট ব্যবহার করে Firebase-এর মাধ্যমে প্রমাণীকরণ করার সবচেয়ে সহজ উপায় হল Firebase JavaScript SDK-এর মাধ্যমে সাইন-ইন প্রবাহ পরিচালনা করা। (যদি আপনি Node.js বা অন্য অ-ব্রাউজার পরিবেশে একজন ব্যবহারকারীকে প্রমাণীকরণ করতে চান, তাহলে আপনাকে অবশ্যই সাইন-ইন প্রবাহটি ম্যানুয়ালি পরিচালনা করতে হবে।)
Firebase JavaScript SDK দিয়ে সাইন-ইন প্রবাহ পরিচালনা করতে, এই ধাপগুলি অনুসরণ করুন:
- Facebook প্রদানকারী বস্তুর একটি উদাহরণ তৈরি করুন:
Web modular API
import { FacebookAuthProvider } from "firebase/auth"; const provider = new FacebookAuthProvider();
Web namespaced API
var provider = new firebase.auth.FacebookAuthProvider();
- ঐচ্ছিক : অতিরিক্ত OAuth 2.0 স্কোপগুলি নির্দিষ্ট করুন যা আপনি প্রমাণীকরণ প্রদানকারীর কাছ থেকে অনুরোধ করতে চান৷ একটি সুযোগ যোগ করতে,
addScope
কল করুন। উদাহরণ স্বরূপ:প্রমাণীকরণ প্রদানকারীর ডকুমেন্টেশন দেখুন।Web modular API
provider.addScope('user_birthday');
Web namespaced API
provider.addScope('user_birthday');
- ঐচ্ছিক : প্রাসঙ্গিক কাস্টম OAuth প্যারামিটারগুলি স্পষ্টভাবে পাস না করেই ব্যবহারকারীর পছন্দের ভাষায় প্রদানকারীর OAuth প্রবাহকে স্থানীয়করণ করতে, OAuth প্রবাহ শুরু করার আগে Auth উদাহরণে ভাষা কোড আপডেট করুন। উদাহরণ স্বরূপ:
Web modular API
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 namespaced API
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
- ঐচ্ছিক : অতিরিক্ত কাস্টম OAuth প্রদানকারী প্যারামিটার নির্দিষ্ট করুন যা আপনি OAuth অনুরোধের সাথে পাঠাতে চান। একটি কাস্টম প্যারামিটার যোগ করতে, OAuth প্রদানকারীর ডকুমেন্টেশন এবং সংশ্লিষ্ট মান দ্বারা নির্দিষ্ট করা কী সমন্বিত একটি বস্তু সহ প্রাথমিক প্রদানকারীতে
setCustomParameters
এ কল করুন। উদাহরণ স্বরূপ:সংরক্ষিত প্রয়োজনীয় OAuth প্যারামিটার অনুমোদিত নয় এবং উপেক্ষা করা হবে। আরো বিস্তারিত জানার জন্য প্রমাণীকরণ প্রদানকারীর রেফারেন্স দেখুন।Web modular API
provider.setCustomParameters({ 'display': 'popup' });
Web namespaced API
provider.setCustomParameters({ 'display': 'popup' });
- Facebook প্রদানকারী অবজেক্ট ব্যবহার করে Firebase দিয়ে প্রমাণীকরণ করুন। আপনি আপনার ব্যবহারকারীদের একটি পপ-আপ উইন্ডো খোলার মাধ্যমে বা সাইন-ইন পৃষ্ঠায় পুনঃনির্দেশ করে তাদের Facebook অ্যাকাউন্টগুলির সাথে সাইন ইন করতে অনুরোধ করতে পারেন৷ রিডাইরেক্ট পদ্ধতি মোবাইল ডিভাইসে পছন্দ করা হয়।
- একটি পপ-আপ উইন্ডো দিয়ে সাইন ইন করতে,
signInWithPopup
কল করুন:এছাড়াও লক্ষ্য করুন যে আপনি Facebook প্রদানকারীর OAuth টোকেন পুনরুদ্ধার করতে পারেন যা Facebook API ব্যবহার করে অতিরিক্ত ডেটা আনতে ব্যবহার করা যেতে পারে।Web modular API
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 namespaced API
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; // ... });
এটিও যেখানে আপনি ত্রুটিগুলি ধরতে এবং পরিচালনা করতে পারেন৷ ত্রুটি কোডের একটি তালিকার জন্য প্রমাণীকরণ রেফারেন্স ডক্স দেখুন।
- সাইন-ইন পৃষ্ঠায় পুনঃনির্দেশ করে সাইন ইন করতে,
signInWithRedirect
কল করুন : `signInWithRedirect` ব্যবহার করার সময় সর্বোত্তম অনুশীলনগুলি অনুসরণ করুন৷তারপর, আপনার পেজ লোড হলেWeb modular API
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web namespaced API
firebase.auth().signInWithRedirect(provider);
getRedirectResult
কল করে আপনি Facebook প্রদানকারীর OAuth টোকেনটি পুনরুদ্ধার করতে পারেন:এটিও যেখানে আপনি ত্রুটিগুলি ধরতে এবং পরিচালনা করতে পারেন৷ ত্রুটি কোডের একটি তালিকার জন্য প্রমাণীকরণ রেফারেন্স ডক্স দেখুন।Web modular API
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 namespaced API
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 এক্সটেনশন অ্যাপ তৈরি করেন, তাহলে আপনাকে অবশ্যই আপনার Chrome এক্সটেনশন আইডি যোগ করতে হবে:
- Firebase কনসোলে আপনার প্রকল্প খুলুন।
- প্রমাণীকরণ বিভাগে, সাইন-ইন পদ্ধতি পৃষ্ঠা খুলুন।
- অনুমোদিত ডোমেনের তালিকায় নিচের মত একটি URI যোগ করুন:
chrome-extension://CHROME_EXTENSION_ID
শুধুমাত্র পপআপ অপারেশন ( signInWithPopup
, linkWithPopup
, এবং reauthenticateWithPopup
) Chrome এক্সটেনশনগুলিতে উপলব্ধ, কারণ Chrome এক্সটেনশানগুলি HTTP পুনঃনির্দেশ ব্যবহার করতে পারে না৷ আপনার ব্রাউজার অ্যাকশন পপআপের পরিবর্তে একটি ব্যাকগ্রাউন্ড পেজ স্ক্রিপ্ট থেকে এই পদ্ধতিগুলি কল করা উচিত, কারণ প্রমাণীকরণ পপআপ ব্রাউজার অ্যাকশন পপআপ বাতিল করবে। পপআপ পদ্ধতি শুধুমাত্র ম্যানিফেস্ট V2 ব্যবহার করে এক্সটেনশনে ব্যবহার করা যেতে পারে। নতুন ম্যানিফেস্ট V3 শুধুমাত্র পরিষেবা কর্মীদের আকারে ব্যাকগ্রাউন্ড স্ক্রিপ্টগুলিকে অনুমতি দেয়, যা মোটেই পপআপ অপারেশন করতে পারে না।
আপনার Chrome এক্সটেনশনের ম্যানিফেস্ট ফাইলে নিশ্চিত করুন যে আপনি content_security_policy
অনুমোদিত তালিকায় https://apis.google.com
URL যোগ করেছেন।
পরবর্তী পদক্ষেপ
একজন ব্যবহারকারী প্রথমবার সাইন ইন করার পরে, একটি নতুন ব্যবহারকারীর অ্যাকাউন্ট তৈরি করা হয় এবং শংসাপত্রগুলির সাথে লিঙ্ক করা হয়—অর্থাৎ, ব্যবহারকারীর নাম এবং পাসওয়ার্ড, ফোন নম্বর, বা প্রমাণ প্রদানকারীর তথ্য — ব্যবহারকারী সাইন ইন করেছেন। এই নতুন অ্যাকাউন্টটি আপনার ফায়ারবেস প্রকল্পের অংশ হিসাবে সংরক্ষণ করা হয়েছে এবং ব্যবহারকারী কীভাবে সাইন ইন করুন না কেন, আপনার প্রকল্পের প্রতিটি অ্যাপ জুড়ে একজন ব্যবহারকারীকে শনাক্ত করতে ব্যবহার করা যেতে পারে।
আপনার অ্যাপে, আপনার ব্যবহারকারীর প্রমাণীকরণের স্থিতি জানার প্রস্তাবিত উপায় হল
Auth
অবজেক্টে একজন পর্যবেক্ষক সেট করা। তারপর আপনিUser
অবজেক্ট থেকে ব্যবহারকারীর মৌলিক প্রোফাইল তথ্য পেতে পারেন। ব্যবহারকারীদের পরিচালনা দেখুন।আপনার ফায়ারবেস রিয়েলটাইম ডেটাবেস এবং ক্লাউড স্টোরেজ সুরক্ষা নিয়মে , আপনি
auth
ভেরিয়েবল থেকে সাইন-ইন করা ব্যবহারকারীর অনন্য ব্যবহারকারী আইডি পেতে পারেন এবং ব্যবহারকারী কোন ডেটা অ্যাক্সেস করতে পারে তা নিয়ন্ত্রণ করতে এটি ব্যবহার করতে পারেন।
একজন ব্যবহারকারীকে সাইন আউট করতে, signOut
কল করুন:
Web modular API
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Web namespaced API
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });