আপনি আপনার ব্যবহারকারীদের Yahoo এর মতো OAuth প্রদানকারী ব্যবহার করে Firebase এর সাথে প্রমাণীকরণ করতে দিতে পারেন, Firebase SDK ব্যবহার করে আপনার অ্যাপে জেনেরিক OAuth লগইন একীভূত করে এন্ড-টু-এন্ড সাইন-ইন প্রবাহ পরিচালনা করতে পারেন।
শুরু করার আগে
Yahoo অ্যাকাউন্ট ব্যবহার করে ব্যবহারকারীদের সাইন ইন করতে, আপনাকে প্রথমে আপনার Firebase প্রকল্পের জন্য Yahoo কে সাইন-ইন প্রদানকারী হিসেবে সক্ষম করতে হবে:
- আপনার জাভাস্ক্রিপ্ট প্রকল্পে Firebase যোগ করুন ।
- Firebase কনসোলে , Auth বিভাগটি খুলুন।
- সাইন ইন পদ্ধতি ট্যাবে, Yahoo প্রদানকারী সক্ষম করুন।
- সেই প্রোভাইডারের ডেভেলপার কনসোল থেকে প্রোভাইডার কনফিগারেশনে ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট যোগ করুন:
Yahoo OAuth ক্লায়েন্ট নিবন্ধন করতে, Yahoo এর সাথে একটি ওয়েব অ্যাপ্লিকেশন নিবন্ধন করার জন্য Yahoo ডেভেলপার ডকুমেন্টেশন অনুসরণ করুন।
দুটি OpenID Connect API অনুমতি নির্বাচন করতে ভুলবেন না:
profileএবংemail।- এই প্রোভাইডারদের সাথে অ্যাপ নিবন্ধন করার সময়, আপনার প্রোজেক্টের জন্য
*.firebaseapp.comডোমেনটি আপনার অ্যাপের জন্য রিডাইরেক্ট ডোমেন হিসেবে নিবন্ধন করতে ভুলবেন না।
- সংরক্ষণ করুন ক্লিক করুন।
Firebase SDK দিয়ে সাইন-ইন ফ্লো পরিচালনা করুন
যদি আপনি একটি ওয়েব অ্যাপ তৈরি করেন, তাহলে আপনার ব্যবহারকারীদের Yahoo অ্যাকাউন্ট ব্যবহার করে Firebase-এর মাধ্যমে প্রমাণীকরণ করার সবচেয়ে সহজ উপায় হল Firebase JavaScript SDK-এর মাধ্যমে সম্পূর্ণ সাইন-ইন প্রবাহ পরিচালনা করা।
Firebase JavaScript SDK দিয়ে সাইন-ইন ফ্লো পরিচালনা করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
yahoo.com প্রোভাইডার আইডি ব্যবহার করে একটি OAuthProvider এর একটি উদাহরণ তৈরি করুন।
Web
import { OAuthProvider } from "firebase/auth"; const provider = new OAuthProvider('yahoo.com');
Web
var provider = new firebase.auth.OAuthProvider('yahoo.com');
ঐচ্ছিক : OAuth অনুরোধের সাথে আপনি যে অতিরিক্ত কাস্টম OAuth প্যারামিটার পাঠাতে চান তা নির্দিষ্ট করুন।
Web
provider.setCustomParameters({ // Prompt user to re-authenticate to Yahoo. prompt: 'login', // Localize to French. language: 'fr' });
Web
provider.setCustomParameters({ // Prompt user to re-authenticate to Yahoo. prompt: 'login', // Localize to French. language: 'fr' });
Yahoo যে প্যারামিটারগুলি সমর্থন করে তার জন্য, Yahoo OAuth ডকুমেন্টেশন দেখুন। মনে রাখবেন যে আপনি
setCustomParameters()দিয়ে Firebase-প্রয়োজনীয় প্যারামিটারগুলি পাস করতে পারবেন না। এই প্যারামিটারগুলি হল client_id , redirect_uri , response_type , scope এবং state ।ঐচ্ছিক :
profileএবংemailবাইরে অতিরিক্ত OAuth 2.0 স্কোপ উল্লেখ করুন যা আপনি প্রমাণীকরণ প্রদানকারীর কাছ থেকে অনুরোধ করতে চান। যদি আপনার অ্যাপ্লিকেশনের জন্য Yahoo API থেকে ব্যক্তিগত ব্যবহারকারীর ডেটা অ্যাক্সেসের প্রয়োজন হয়, তাহলে আপনাকে Yahoo ডেভেলপার কনসোলে API অনুমতির অধীনে Yahoo API-তে অনুমতির জন্য অনুরোধ করতে হবে। অনুরোধ করা OAuth স্কোপগুলি অ্যাপের API অনুমতিতে পূর্ব-কনফিগার করা স্কোপগুলির সাথে হুবহু মিলতে হবে। উদাহরণস্বরূপ, যদি ব্যবহারকারীর পরিচিতিগুলিতে পঠন/লেখার অ্যাক্সেসের অনুরোধ করা হয় এবং অ্যাপের API অনুমতিতে পূর্ব-কনফিগার করা হয়, তাহলে শুধুমাত্র পঠনযোগ্য OAuth স্কোপsdct-rএর পরিবর্তেsdct-wপাস করতে হবে। অন্যথায়, প্রবাহটি ব্যর্থ হবে এবং শেষ ব্যবহারকারীকে একটি ত্রুটি দেখানো হবে।Web
// Request access to Yahoo Mail API. provider.addScope('mail-r'); // Request read/write access to user contacts. // This must be preconfigured in the app's API permissions. provider.addScope('sdct-w');
Web
// Request access to Yahoo Mail API. provider.addScope('mail-r'); // Request read/write access to user contacts. // This must be preconfigured in the app's API permissions. provider.addScope('sdct-w');
আরও জানতে, Yahoo স্কোপস ডকুমেন্টেশন দেখুন।
OAuth প্রোভাইডার অবজেক্ট ব্যবহার করে Firebase দিয়ে প্রমাণীকরণ করুন। আপনি আপনার ব্যবহারকারীদের তাদের Yahoo অ্যাকাউন্ট দিয়ে সাইন ইন করতে অনুরোধ করতে পারেন একটি পপ-আপ উইন্ডো খুলে অথবা সাইন-ইন পৃষ্ঠায় পুনঃনির্দেশিত করে। মোবাইল ডিভাইসে পুনঃনির্দেশ পদ্ধতিটি পছন্দনীয়।
পপ-আপ উইন্ডো দিয়ে সাইন ইন করতে,
signInWithPopupএ কল করুন :Web
import { getAuth, signInWithPopup, OAuthProvider } from "firebase/auth"; const auth = getAuth(); signInWithPopup(auth, provider) .then((result) => { // IdP data available in result.additionalUserInfo.profile // ... // Yahoo OAuth access token and ID token can be retrieved by calling: const credential = OAuthProvider.credentialFromResult(result); const accessToken = credential.accessToken; const idToken = credential.idToken; }) .catch((error) => { // Handle error. });
Web
firebase.auth().signInWithPopup(provider) .then((result) => { // IdP data available in result.additionalUserInfo.profile // ... /** @type {firebase.auth.OAuthCredential} */ const credential = result.credential; // Yahoo OAuth access token and ID token can be retrieved by calling: var accessToken = credential.accessToken; var idToken = credential.idToken; }) .catch((error) => { // Handle error. });
সাইন-ইন পৃষ্ঠায় পুনঃনির্দেশিত করে সাইন ইন করতে,
signInWithRedirectএ কল করুন:
firebase.auth().signInWithRedirect(provider);
ব্যবহারকারী সাইন-ইন সম্পন্ন করে পৃষ্ঠায় ফিরে আসার পর, আপনি
getRedirectResultএ কল করে সাইন-ইন ফলাফল পেতে পারেন।Web
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web
firebase.auth().signInWithRedirect(provider);
সফলভাবে সম্পন্ন হলে, প্রদানকারীর সাথে সম্পর্কিত OAuth ID টোকেন এবং অ্যাক্সেস টোকেন
firebase.auth.UserCredentialঅবজেক্ট থেকে পুনরুদ্ধার করা যেতে পারে।OAuth অ্যাক্সেস টোকেন ব্যবহার করে, আপনি Yahoo API কল করতে পারেন।
উদাহরণস্বরূপ, মৌলিক প্রোফাইল তথ্য পেতে, নিম্নলিখিত REST API কল করা যেতে পারে:
curl -i -H "Authorization: Bearer ACCESS_TOKEN" https://social.yahooapis.com/v1/user/YAHOO_USER_UID/profile?format=json
যেখানে
YAHOO_USER_UIDহল Yahoo ব্যবহারকারীর আইডি যাfirebase.auth().currentUser.providerData[0].uidক্ষেত্র থেকে অথবাresult.additionalUserInfo.profileথেকে পুনরুদ্ধার করা যেতে পারে।উপরের উদাহরণগুলি সাইন-ইন প্রবাহের উপর ফোকাস করলেও, আপনি
linkWithPopup/linkWithRedirectব্যবহার করে একটি Yahoo প্রদানকারীকে একজন বিদ্যমান ব্যবহারকারীর সাথে লিঙ্ক করার ক্ষমতাও পাবেন। উদাহরণস্বরূপ, আপনি একই ব্যবহারকারীর সাথে একাধিক প্রদানকারীকে লিঙ্ক করতে পারেন যাতে তারা উভয়ের মাধ্যমে সাইন ইন করতে পারে।Web
import { getAuth, linkWithPopup, OAuthProvider } from "firebase/auth"; const provider = new OAuthProvider('yahoo.com'); const auth = getAuth(); linkWithPopup(auth.currentUser, provider) .then((result) => { // Yahoo credential is linked to the current user. // IdP data available in result.additionalUserInfo.profile. // Get the OAuth access token and ID Token const credential = OAuthProvider.credentialFromResult(result); const accessToken = credential.accessToken; const idToken = credential.idToken; }) .catch((error) => { // Handle error. });
Web
var provider = new firebase.auth.OAuthProvider('yahoo.com'); firebase.auth().currentUser.linkWithPopup(provider) .then((result) => { // Yahoo credential is linked to the current user. // IdP data available in result.additionalUserInfo.profile. // Yahoo OAuth access token can be retrieved by calling: // result.credential.accessToken // Yahoo OAuth ID token can be retrieved by calling: // result.credential.idToken }) .catch((error) => { // Handle error. });
একই প্যাটার্ন
reauthenticateWithPopup/reauthenticateWithRedirectএর সাথে ব্যবহার করা যেতে পারে যা সাম্প্রতিক লগইন প্রয়োজন এমন সংবেদনশীল ক্রিয়াকলাপগুলির জন্য নতুন শংসাপত্র পুনরুদ্ধার করতে ব্যবহার করা যেতে পারে।Web
import { getAuth, reauthenticateWithPopup, OAuthProvider } from "firebase/auth"; const provider = new OAuthProvider('yahoo.com'); const auth = getAuth(); reauthenticateWithPopup(auth.currentUser, provider) .then((result) => { // User is re-authenticated with fresh tokens minted and // should be able to perform sensitive operations like account // deletion and email or password update. // IdP data available in result.additionalUserInfo.profile. // Get the OAuth access token and ID Token const credential = OAuthProvider.credentialFromResult(result); const accessToken = credential.accessToken; const idToken = credential.idToken; }) .catch((error) => { // Handle error. });
Web
var provider = new firebase.auth.OAuthProvider('yahoo.com'); firebase.auth().currentUser.reauthenticateWithPopup(provider) .then((result) => { // User is re-authenticated with fresh tokens minted and // should be able to perform sensitive operations like account // deletion and email or password update. // IdP data available in result.additionalUserInfo.profile. // Yahoo OAuth access token can be retrieved by calling: // result.credential.accessToken // Yahoo OAuth ID token can be retrieved by calling: // result.credential.idToken }) .catch((error) => { // Handle error. });
Chrome এক্সটেনশনে Firebase দিয়ে প্রমাণীকরণ করুন
আপনি যদি একটি Chrome এক্সটেনশন অ্যাপ তৈরি করেন, তাহলে অফস্ক্রিন ডকুমেন্টস গাইড দেখুন।
পরবর্তী পদক্ষেপ
একজন ব্যবহারকারী প্রথমবার সাইন ইন করার পর, একটি নতুন ব্যবহারকারী অ্যাকাউন্ট তৈরি করা হয় এবং শংসাপত্রের সাথে লিঙ্ক করা হয়—অর্থাৎ, ব্যবহারকারীর নাম এবং পাসওয়ার্ড, ফোন নম্বর, অথবা প্রমাণীকরণ প্রদানকারীর তথ্য—যার মাধ্যমে ব্যবহারকারী সাইন ইন করেছেন। এই নতুন অ্যাকাউন্টটি আপনার Firebase প্রকল্পের অংশ হিসাবে সংরক্ষণ করা হয় এবং ব্যবহারকারী যেভাবেই সাইন ইন করুক না কেন, আপনার প্রকল্পের প্রতিটি অ্যাপে একজন ব্যবহারকারীকে সনাক্ত করতে ব্যবহার করা যেতে পারে।
আপনার অ্যাপগুলিতে, আপনার ব্যবহারকারীর প্রমাণীকরণের অবস্থা জানার জন্য প্রস্তাবিত উপায় হল
Authঅবজেক্টে একটি পর্যবেক্ষক সেট করা। এরপর আপনিUserঅবজেক্ট থেকে ব্যবহারকারীর মৌলিক প্রোফাইল তথ্য পেতে পারেন। Manage Users দেখুন।আপনার 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. });