আপনি আপনার অ্যাপে টুইটার প্রমাণীকরণ সংহত করে আপনার ব্যবহারকারীদের তাদের টুইটার অ্যাকাউন্ট ব্যবহার করে Firebase-এর সাথে প্রমাণীকরণ করতে দিতে পারেন। আপনি সাইন-ইন ফ্লো চালানোর জন্য Firebase SDK ব্যবহার করে, অথবা ম্যানুয়ালি Twitter OAuth ফ্লো চালিয়ে এবং ফলে অ্যাক্সেস টোকেন এবং গোপনীয়তা Firebase-এ পাস করে Twitter প্রমাণীকরণকে একীভূত করতে পারেন।
আপনি শুরু করার আগে
- আপনার JavaScript প্রকল্পে Firebase যোগ করুন ।
- Firebase কনসোলে , Auth বিভাগটি খুলুন।
- সাইন ইন পদ্ধতি ট্যাবে, টুইটার প্রদানকারী সক্ষম করুন।
- সেই প্রদানকারীর বিকাশকারী কনসোল থেকে প্রদানকারী কনফিগারেশনে API কী এবং API গোপন যোগ করুন:
- টুইটারে একটি বিকাশকারী অ্যাপ্লিকেশন হিসাবে আপনার অ্যাপটি নিবন্ধন করুন এবং আপনার অ্যাপের OAuth API কী এবং API গোপন পান৷
- নিশ্চিত করুন যে আপনার Firebase OAuth রিডাইরেক্ট URI (যেমন
my-app-12345.firebaseapp.com/__/auth/handler
) আপনার Twitter অ্যাপের কনফিগারেশনে আপনার অ্যাপের সেটিংস পৃষ্ঠায় আপনার অনুমোদন কলব্যাক URL হিসেবে সেট করা আছে।
- Save এ ক্লিক করুন।
Firebase SDK দিয়ে সাইন-ইন ফ্লো পরিচালনা করুন
আপনি যদি একটি ওয়েব অ্যাপ তৈরি করেন, তাহলে আপনার ব্যবহারকারীদের তাদের Twitter অ্যাকাউন্ট ব্যবহার করে Firebase-এর মাধ্যমে প্রমাণীকরণ করার সবচেয়ে সহজ উপায় হল Firebase JavaScript SDK-এর মাধ্যমে সাইন-ইন প্রবাহ পরিচালনা করা। (যদি আপনি Node.js বা অন্য অ-ব্রাউজার পরিবেশে একজন ব্যবহারকারীকে প্রমাণীকরণ করতে চান, তাহলে আপনাকে অবশ্যই সাইন-ইন প্রবাহটি ম্যানুয়ালি পরিচালনা করতে হবে।)
Firebase JavaScript SDK দিয়ে সাইন-ইন প্রবাহ পরিচালনা করতে, এই ধাপগুলি অনুসরণ করুন:
- টুইটার প্রদানকারী বস্তুর একটি উদাহরণ তৈরি করুন:
Web
import { TwitterAuthProvider } from "firebase/auth"; const provider = new TwitterAuthProvider();
Web
var provider = new firebase.auth.TwitterAuthProvider();
- ঐচ্ছিক : প্রাসঙ্গিক কাস্টম 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({ 'lang': 'es' });
Web
provider.setCustomParameters({ 'lang': 'es' });
- Twitter প্রদানকারী বস্তু ব্যবহার করে Firebase দিয়ে প্রমাণীকরণ করুন। আপনি আপনার ব্যবহারকারীদের একটি পপ-আপ উইন্ডো খোলার মাধ্যমে অথবা সাইন-ইন পৃষ্ঠায় পুনঃনির্দেশিত করে তাদের টুইটার অ্যাকাউন্টগুলির সাথে সাইন ইন করতে অনুরোধ করতে পারেন৷ রিডাইরেক্ট পদ্ধতি মোবাইল ডিভাইসে পছন্দ করা হয়।
- একটি পপ-আপ উইন্ডো দিয়ে সাইন ইন করতে,
signInWithPopup
কল করুন:এছাড়াও লক্ষ্য করুন যে আপনি Twitter প্রদানকারীর OAuth টোকেন পুনরুদ্ধার করতে পারেন যা Twitter API ব্যবহার করে অতিরিক্ত ডেটা আনতে ব্যবহার করা যেতে পারে।Web
import { getAuth, signInWithPopup, TwitterAuthProvider } from "firebase/auth"; const auth = getAuth(); signInWithPopup(auth, provider) .then((result) => { // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. const credential = TwitterAuthProvider.credentialFromResult(result); const token = credential.accessToken; const secret = credential.secret; // The signed-in user info. 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; // The AuthCredential type that was used. const credential = TwitterAuthProvider.credentialFromError(error); // ... });
Web
firebase .auth() .signInWithPopup(provider) .then((result) => { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. var token = credential.accessToken; var secret = credential.secret; // 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; // ... });
এটিও যেখানে আপনি ত্রুটিগুলি ধরতে এবং পরিচালনা করতে পারেন৷ ত্রুটি কোডের একটি তালিকার জন্য প্রমাণীকরণ রেফারেন্স ডক্স দেখুন।
- সাইন-ইন পৃষ্ঠায় পুনঃনির্দেশ করে সাইন ইন করতে,
signInWithRedirect
কল করুন : `signInWithRedirect` ব্যবহার করার সময় সর্বোত্তম অনুশীলনগুলি অনুসরণ করুন৷তারপর, আপনার পৃষ্ঠা লোড হলেWeb
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web
firebase.auth().signInWithRedirect(provider);
getRedirectResult
কল করে আপনি টুইটার প্রদানকারীর OAuth টোকেন পুনরুদ্ধার করতে পারেন:এটিও যেখানে আপনি ত্রুটিগুলি ধরতে এবং পরিচালনা করতে পারেন৷ ত্রুটি কোডের একটি তালিকার জন্য প্রমাণীকরণ রেফারেন্স ডক্স দেখুন।Web
import { getAuth, getRedirectResult, TwitterAuthProvider } from "firebase/auth"; const auth = getAuth(); getRedirectResult(auth) .then((result) => { // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. const credential = TwitterAuthProvider.credentialFromResult(result); const token = credential.accessToken; const secret = credential.secret; // ... // The signed-in user info. 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; // The AuthCredential type that was used. const credential = TwitterAuthProvider.credentialFromError(error); // ... });
Web
firebase.auth() .getRedirectResult() .then((result) => { if (result.credential) { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // This gives you a the Twitter OAuth 1.0 Access Token and Secret. // You can use these server side with your app's credentials to access the Twitter API. var token = credential.accessToken; var secret = credential.secret; // ... } // 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; // ... });
- একটি পপ-আপ উইন্ডো দিয়ে সাইন ইন করতে,
সাইন-ইন প্রবাহ ম্যানুয়ালি পরিচালনা করুন
আপনি Twitter OAuth এন্ডপয়েন্টে কল করে সাইন-ইন ফ্লো পরিচালনা করে একটি Twitter অ্যাকাউন্ট ব্যবহার করে Firebase এর সাথে প্রমাণীকরণ করতে পারেন:
- বিকাশকারীর ডকুমেন্টেশন অনুসরণ করে আপনার অ্যাপে Twitter প্রমাণীকরণকে একীভূত করুন। টুইটার সাইন-ইন প্রবাহের শেষে, আপনি একটি OAuth অ্যাক্সেস টোকেন এবং একটি OAuth গোপনীয়তা পাবেন।
- যদি আপনি একটি Node.js অ্যাপ্লিকেশনে সাইন ইন করতে চান, তাহলে Node.js অ্যাপ্লিকেশনে OAuth অ্যাক্সেস টোকেন এবং OAuth গোপনীয়তা পাঠান।
- একজন ব্যবহারকারী সফলভাবে টুইটারে সাইন ইন করার পরে, একটি Firebase শংসাপত্রের জন্য OAuth অ্যাক্সেস টোকেন এবং OAuth গোপনীয়তা বিনিময় করুন:
var credential = firebase.auth.TwitterAuthProvider.credential(token, secret);
- Firebase শংসাপত্র ব্যবহার করে Firebase এর সাথে প্রমাণীকরণ করুন:
Web
import { getAuth, signInWithCredential, FacebookAuthProvider } from "firebase/auth"; // Sign in with the credential from the Facebook user. const auth = getAuth(); signInWithCredential(auth, credential) .then((result) => { // Signed in const credential = FacebookAuthProvider.credentialFromResult(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
// Sign in with the credential from the Facebook user. firebase.auth().signInWithCredential(credential) .then((result) => { // Signed in var credential = result.credential; // ... }) .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 এক্সটেনশন অ্যাপ তৈরি করেন, অফস্ক্রিন ডকুমেন্টস গাইড দেখুন।
পরবর্তী পদক্ষেপ
একজন ব্যবহারকারী প্রথমবার সাইন ইন করার পরে, একটি নতুন ব্যবহারকারীর অ্যাকাউন্ট তৈরি করা হয় এবং শংসাপত্রগুলির সাথে লিঙ্ক করা হয়—অর্থাৎ, ব্যবহারকারীর নাম এবং পাসওয়ার্ড, ফোন নম্বর, বা প্রমাণ প্রদানকারীর তথ্য — ব্যবহারকারী সাইন ইন করেছেন। এই নতুন অ্যাকাউন্টটি আপনার ফায়ারবেস প্রকল্পের অংশ হিসাবে সংরক্ষণ করা হয়েছে এবং ব্যবহারকারী কীভাবে সাইন ইন করুন না কেন, আপনার প্রকল্পের প্রতিটি অ্যাপ জুড়ে একজন ব্যবহারকারীকে শনাক্ত করতে ব্যবহার করা যেতে পারে।
আপনার অ্যাপে, আপনার ব্যবহারকারীর প্রমাণীকরণের স্থিতি জানার প্রস্তাবিত উপায় হল
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. });