আপনি ব্যবহারকারীর ফোনে একটি SMS বার্তা পাঠিয়ে ব্যবহারকারীকে সাইন ইন করতে Firebase Authentication ব্যবহার করতে পারেন। ব্যবহারকারী এসএমএস বার্তায় থাকা একটি এককালীন কোড ব্যবহার করে সাইন ইন করে।
আপনার অ্যাপে ফোন নম্বর সাইন-ইন যোগ করার সবচেয়ে সহজ উপায় হল FirebaseUI ব্যবহার করা, যার মধ্যে একটি ড্রপ-ইন সাইন-ইন উইজেট রয়েছে যা ফোন নম্বর সাইন-ইন করার জন্য সাইন-ইন প্রবাহ প্রয়োগ করে, সেইসাথে পাসওয়ার্ড-ভিত্তিক এবং ফেডারেটেড সাইন -এ এই দস্তাবেজটি বর্ণনা করে যে কীভাবে Firebase SDK ব্যবহার করে একটি ফোন নম্বর সাইন-ইন ফ্লো বাস্তবায়ন করতে হয়।
আপনি শুরু করার আগে
আপনি যদি ইতিমধ্যে না করে থাকেন, তাহলে Firebase কনসোল থেকে আপনার জাভাস্ক্রিপ্ট প্রজেক্টে Firebase যোগ করুন- এ বর্ণিত প্রাথমিক স্নিপেটটি আপনার প্রকল্পে অনুলিপি করুন।নিরাপত্তা উদ্বেগ
শুধুমাত্র একটি ফোন নম্বর ব্যবহার কর�� প্রমাণীকরণ, সুবিধাজনক হলেও, অন্যান্য উপলব্ধ পদ্ধতির তুলনায় কম নিরাপদ, কারণ একটি ফোন নম্বরের দখল ব্যবহারকারীদের মধ্যে সহজেই হস্তান্তর করা যেতে পারে। এছাড়াও, একাধিক ব্যবহারকারীর প্রোফাইল সহ ডিভাইসগুলিতে, যে কোনও ব্যবহারকারী যে এসএমএস বার্তাগুলি পেতে পারে সে ডিভাইসের ফোন নম্বর ব্যবহার করে একটি অ্যাকাউন্টে সাইন ইন করতে পারে৷
আপনি যদি আপনার অ্যাপে ফোন নম্বর ভিত্তিক সাইন-ইন ব্যবহার করেন, তাহলে আপনাকে আরও নিরাপদ সাইন-ইন পদ্ধতির পাশাপাশি এটি অফার করা উচিত এবং ফোন নম্বর সাইন-ইন ব্যবহার করার নিরাপত্তা ট্রেডঅফ সম্পর্কে ব্যবহারকারীদের জানানো উচিত।
আপনার Firebase প্রকল্পের জন্য ফোন নম্বর সাইন-ইন সক্ষম করুন
SMS এর মাধ্যমে ব্যবহারকারীদের সাইন ইন করতে, আপনাকে প্রথমে আপনার Firebase প্রকল্পের জন্য ফোন নম্বর সাইন-ইন পদ্ধতি সক্রিয় করতে হবে:
- Firebase কনসোলে , প্রমাণীকরণ বিভাগটি খুলুন।
- সাইন-ইন পদ্ধতি পৃষ্ঠায়, ফোন নম্বর সাইন-ইন পদ্ধতি সক্ষম করুন।
- একই পৃষ্ঠায়, যে ডোমেনটি আপনার অ্যাপ হোস্ট করবে সেটি যদি OAuth রিডাইরেক্ট ডোমেন বিভাগে তালিকাভুক্ত না থাকে, তাহলে আপনার ডোমেন যোগ করুন। নোট করুন যে স্থানীয় হোস্ট ফোন প্রমাণীকরণের উদ্দেশ্যে হোস্ট করা ডোমেন হিসাবে অনুমোদিত নয়।
reCAPTCHA যাচাইকারী সেট আপ করুন
ব্যবহারকারীদের ফোন নম্বর দিয়ে সাইন ইন করার আগে, আপনাকে অবশ্যই Firebase-এর reCAPTCHA যাচাইকারী সেট আপ করতে হবে। ফায়ারবেস অপব্যবহার রোধ করতে reCAPTCHA ব্যবহার করে, যেমন আপনার অ্যাপের অনুমোদিত ডোমেনগুলির একটি থেকে ফোন নম্বর যাচাইকরণের অনুরোধ এসেছে তা নিশ্চিত করে।
আপনাকে ম্যানুয়ালি একটি reCAPTCHA ক্লায়েন্ট সেট আপ করতে হবে না; আপনি যখন Firebase SDK-এর RecaptchaVerifier
অবজেক্ট ব্যবহার করেন, তখন Firebase স্বয়ংক্রিয়ভাবে যেকোনো প্রয়োজনীয় ক্লায়েন্ট কী এবং গোপনীয়তা তৈরি করে এবং পরিচালনা করে।
RecaptchaVerifier
অবজেক্টটি অদৃশ্য reCAPTCHA সমর্থন করে, যা প্রায়শই ব্যবহারকারীকে কোনো ব্যবহারকারীর অ্যাকশনের প্রয়োজন ছাড়াই যাচাই করতে পারে, সেইসাথে reCAPTCHA উইজেট, যা সফলভাবে সম্পূর্ণ করার জন্য সর্বদা ব্যবহারকারীর মিথস্ক্রিয়া প্রয়োজন।
অন্তর্নিহিত রেন্ডার করা reCAPTCHA reCAPTCHA রেন্ডার করার আগে 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();
অদৃশ্য reCAPTCHA ব্যবহার করুন
একটি অদৃশ্য reCAPTCHA ব্যবহার করতে, আপনার সাইন-ইন ফর্ম জমা দেয় এমন বোতামটির আইডি নির্দিষ্ট করে invisible
সেট করা size
প্যারামিটার সহ একটি RecaptchaVerifier
অবজেক্ট তৈরি করুন৷ যেমন:
Web
import { getAuth, RecaptchaVerifier } from "firebase/auth"; const auth = getAuth(); window.recaptchaVerifier = new RecaptchaVerifier(auth, 'sign-in-button', { 'size': 'invisible', 'callback': (response) => { // reCAPTCHA solved, allow signInWithPhoneNumber. onSignInSubmit(); } });
Web
window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('sign-in-button', { 'size': 'invisible', 'callback': (response) => { // reCAPTCHA solved, allow signInWithPhoneNumber. onSignInSubmit(); } });
reCAPTCHA উইজেট ব্যবহার করুন
দৃশ্যমান reCAPTCHA উইজেটটি ব্যবহার করতে, উইজেটটি ধারণ করার জন্য আপনার পৃষ্ঠায় একটি উপাদান তৈরি করুন এবং তারপরে একটি RecaptchaVerifier
অবজেক্ট তৈরি করুন, যখন আপনি এটি করবেন তখন কন্টেইনারটির ID উল্লেখ করুন৷ যেমন:
Web
import { getAuth, RecaptchaVerifier } from "firebase/auth"; const auth = getAuth(); window.recaptchaVerifier = new RecaptchaVerifier(auth, 'recaptcha-container', {});
Web
window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container');
ঐচ্ছিক: reCAPTCHA প্যারামিটার নির্দিষ্ট করুন
আপনি ঐচ্ছিকভাবে RecaptchaVerifier
অবজেক্টে কলব্যাক ফাংশন সেট করতে পারেন যা ব্যবহারকারী যখন reCAPTCHA সমাধান করে বা ব্যবহারকারী ফর্ম জমা দেওয়ার আগে reCAPTCHA মেয়াদ শেষ হয়ে যায় তখন কল করা হয়:
Web
import { getAuth, RecaptchaVerifier } from "firebase/auth"; const auth = getAuth(); window.recaptchaVerifier = new RecaptchaVerifier(auth, 'recaptcha-container', { 'size': 'normal', 'callback': (response) => { // reCAPTCHA solved, allow signInWithPhoneNumber. // ... }, 'expired-callback': () => { // Response expired. Ask user to solve reCAPTCHA again. // ... } });
Web
window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container', { 'size': 'normal', 'callback': (response) => { // reCAPTCHA solved, allow signInWithPhoneNumber. // ... }, 'expired-callback': () => { // Response expired. Ask user to solve reCAPTCHA again. // ... } });
ঐচ্ছিক: reCAPTCHA প্রি-রেন্ডার করুন
আপনি সাইন-ইন অনুরোধ জমা দেওয়ার আগে reCAPTCHA প্রি-রেন্ডার করতে চাইলে, render
কল করুন:
Web
recaptchaVerifier.render().then((widgetId) => { window.recaptchaWidgetId = widgetId; });
Web
recaptchaVerifier.render().then((widgetId) => { window.recaptchaWidgetId = widgetId; });
render
সমাধানের পরে, আপনি reCAPTCHA এর উইজেট আইডি পাবেন, যা আপনি reCAPTCHA API এ কল করতে ব্যবহার করতে পারেন:
Web
const recaptchaResponse = grecaptcha.getResponse(recaptchaWidgetId);
Web
const recaptchaResponse = grecaptcha.getResponse(recaptchaWidgetId);
ব্যবহারকারীর ফোনে একটি যাচাইকরণ কোড পাঠান
ফোন নম্বর সাইন-ইন শুরু করতে, ব্যবহারকারীকে একটি ইন্টারফেস উপস্থাপন করুন যা তাদের ফোন নম্বর প্রদান করতে অনুরোধ করে, এবং তারপর Firebase যাতে SMS এর মাধ্যমে ব্যবহারকারীর ফোনে একটি প্রমাণীকরণ কোড পাঠাতে অনুরোধ করতে signInWithPhoneNumber
এ কল করুন:
ব্যবহারকারীর ফোন নম্বর পান।
আইনি প্রয়োজনীয়তা পরিবর্তিত হয়, কিন্তু একটি সর্বোত্তম অনুশীলন হিসাবে এবং আপনার ব্যবহারকারীদের জন্য প্রত্যাশা সেট করার জন্য, আপনাকে তাদের জানানো উচিত যে যদি তারা ফোন সাইন-ইন ব্যবহার করে, তাহলে তারা যাচাইকরণের জন্য একটি SMS বার্তা পেতে পারে এবং মান দর প্রযোজ্য।
- Call
signInWithPhoneNumber
, এতে ব্যবহারকারীর ফোন নম্বর এবং আপনার আগে তৈরি করাRecaptchaVerifier
পাঠান।যদিWeb
import { getAuth, signInWithPhoneNumber } from "firebase/auth"; const phoneNumber = getPhoneNumberFromUserInput(); const appVerifier = window.recaptchaVerifier; const auth = getAuth(); signInWithPhoneNumber(auth, phoneNumber, appVerifier) .then((confirmationResult) => { // SMS sent. Prompt user to type the code from the message, then sign the // user in with confirmationResult.confirm(code). window.confirmationResult = confirmationResult; // ... }).catch((error) => { // Error; SMS not sent // ... });
Web
const phoneNumber = getPhoneNumberFromUserInput(); const appVerifier = window.recaptchaVerifier; firebase.auth().signInWithPhoneNumber(phoneNumber, appVerifier) .then((confirmationResult) => { // SMS sent. Prompt user to type the code from the message, then sign the // user in with confirmationResult.confirm(code). window.confirmationResult = confirmationResult; // ... }).catch((error) => { // Error; SMS not sent // ... });
signInWithPhoneNumber
ফলে কোনো ত্রুটি হয়, তাহলে reCAPTCHA রিসেট করুন যাতে ব্যবহারকারী আবার চেষ্টা করতে পারে:grecaptcha.reset(window.recaptchaWidgetId); // Or, if you haven't stored the widget ID: window.recaptchaVerifier.render().then(function(widgetId) { grecaptcha.reset(widgetId); });
signInWithPhoneNumber
পদ্ধতি ব্যবহারকারীকে reCAPTCHA চ্যালেঞ্জ ইস্যু করে এবং ব্যবহারকারী চ্যালেঞ্জটি পাস করলে, Firebase Authentication ব্যবহারকারীর ফোনে একটি যাচাইকরণ কোড সহ একটি SMS বার্তা পাঠাতে অনুরোধ করে।
যাচাইকরণ কোড দিয়ে ব্যবহারকারীকে সাইন ইন করুন
signInWithPhoneNumber
এ কলটি সফল হওয়ার পর, ব্যবহারকারীকে SMS এর মাধ্যমে প্রাপ্ত যাচাইকরণ কোডটি টাইপ করতে বলুন। তারপর, ConfirmationResult
অবজেক্টের confirm
পদ্ধতিতে কোডটি পাস করে ব্যবহারকারীকে সাইন ইন করুন যা signInWithPhoneNumber
এর পরিপূর্ণতা হ্যান্ডলারে পাস করা হয়েছিল (অর্থাৎ, এটি then
ব্লক)। যেমন:
Web
const code = getCodeFromUserInput(); confirmationResult.confirm(code).then((result) => { // User signed in successfully. const user = result.user; // ... }).catch((error) => { // User couldn't sign in (bad verification code?) // ... });
Web
const code = getCodeFromUserInput(); confirmationResult.confirm(code).then((result) => { // User signed in successfully. const user = result.user; // ... }).catch((error) => { // User couldn't sign in (bad verification code?) // ... });
confirm
কল সফল হলে, ব্যবহারকারী সফলভাবে সাইন ইন করেছেন।
মধ্যবর্তী AuthCredential অবজেক্ট পান
আপনি যদি ব্যবহারকারীর অ্যাকাউন্টের জন্য একটি AuthCredential
অবজেক্ট পেতে চান, নিশ্চিতকরণের ফলাফল থেকে যাচাইকরণ কোড এবং confirm
কল করার পরিবর্তে PhoneAuthProvider.credential
এ যাচাইকরণ কোডটি পাস করুন:
var credential = firebase.auth.PhoneAuthProvider.credential(confirmationResult.verificationId, code);
তারপর, আপনি শংসাপত্রের সাথে ব্যবহারকারীকে সাইন ইন করতে পারেন:
firebase.auth().signInWithCredential(credential);
কাল্পনিক ফোন নম্বর দিয়ে পরীক্ষা করুন
আপনি Firebase কনসোলের মাধ্যমে ডেভেলপমেন্টের জন্য কাল্পনিক ফোন নম্বর সেট আপ করতে পারেন। কাল্পনিক ফোন নম্বর দিয়ে পরীক্ষা করা এই সুবিধাগুলি প্রদান করে:
- আপনার ব্যবহারের কোটা ব্যবহার না করে ফোন নম্বর প্রমাণীকরণ পরীক্ষা করুন।
- এ��টি প্রকৃত SMS বার্তা না পাঠিয়ে ফোন নম্বর প্রমাণীকরণ পরীক্ষা করুন।
- থ্রোটল না হয়ে একই ফোন নম্বর দিয়ে একটানা পরীক্ষা চালান। এটি অ্যাপ স্টোর পর্যালোচনা প্রক্রিয়া চলাকালীন প্রত্যাখ্যানের ঝুঁকি কমিয়ে দেয় যদি পর্যালোচক পরীক্ষার জন্য একই ফোন নম্বর ব্যবহার করেন।
- কোনও অতিরিক্ত প্রচেষ্টা ছাড়াই বিকাশের পরিবেশে সহজেই পরীক্ষা করুন, যেমন Google Play পরিষেবাগুলি ছাড়াই iOS সিমুলেটর বা Android এমুলেটরে বিকাশ করার ক্ষমতা।
- প্রোডাকশন এনভায়রনমেন্টে প্রকৃত ফোন নম্বরে সাধারণত প্রয়োগ করা নিরাপত্তা চেক দ্বারা ব্লক না হয়ে ইন্টিগ্রেশন পরীক্ষা লিখুন।
কাল্পনিক ফোন নম্বরগুলি অবশ্যই এই প্রয়োজনীয়তাগুলি পূরণ করবে:
- নিশ্চিত করুন যে আপনি এমন ফোন নম্বর ব্যবহার করছেন যা আসলেই কাল্পনিক, এবং ইতিমধ্যেই বিদ্যমান নেই। Firebase Authentication আপনাকে আসল ব্যবহারকারীদের দ্বারা ব্যবহৃত বিদ্যমান ফোন নম্বরগুলিকে পরীক্ষার নম্বর হিসাবে সেট করার অনুমতি দেয় না। একটি বিকল্প হল ইউএস টেস্ট ফোন নম্বর হিসাবে 555 প্রিফিক্সড নম্বর ব্যবহার করা, উদাহরণস্বরূপ: +1 650-555-3434
- দৈর্ঘ্য এবং অন্যান্য সীমাবদ্ধতার জন্য ফোন নম্বর সঠিকভাবে ফরম্যাট করতে হবে। তারা এখনও প্রকৃত ব্যবহারকারীর ফোন নম্বরের মতো একই বৈধতার মধ্য দিয়ে যাবে।
- আপনি বিকাশের জন্য 10টি পর্যন্ত ফোন নম্বর যোগ করতে পারেন৷
- পরীক্ষামূলক ফোন নম্বর/কোডগুলি ব্যবহার করুন যা অনুমান করা কঠিন এবং ঘন ঘন পরিবর্তন করুন।
কাল্পনিক ফোন নম্বর এবং যাচাইকরণ কোড তৈরি করুন
- Firebase কনসোলে , প্রমাণীকরণ বিভাগটি খুলুন।
- সাইন ইন পদ্ধতি ট্যাবে, ফোন প্রদানকারী সক্ষম করুন যদি আপনি ইতিমধ্যে না করে থাকেন।
- অ্যাকর্ডিয়ন মেনু পরীক্ষার জন্য ফোন নম্বর খুলুন।
- আপনি যে ফোন নম্বরটি পরীক্ষা করতে চান তা প্রদান করুন, উদাহরণস্বরূপ: +1 650-555-3434 ।
- ��েই নির্দিষ্ট নম্বরের জন্য 6-সংখ্যার যাচাইকরণ কোড প্রদান করুন, উদাহরণস্বরূপ: 654321 ।
- নম্বর যোগ করুন । যদি প্রয়োজন হয়, আপনি ফোন নম্বর এবং এর কোডটি মুছে ফেলতে পারেন সংশ্লিষ্ট সারির উপর হোভার করে এবং ট্র্যাশ আইকনে ক্লিক করে।
ম্যানুয়াল পরীক্ষা
আপনি সরাসরি আপনার অ্যাপ্লিকেশনে একটি কাল্পনিক ফোন নম্বর ব্যবহার শুরু করতে পারেন। এটি আপনাকে কোটা সংক্রান্ত সমস্যা বা থ্রটলিং ছাড়াই বিকাশের পর্যায়ে ম্যানুয়াল টেস্টিং করতে দেয়। আপনি Google Play পরিষেবা ইনস্টল না করে সরাসরি iOS সিমুলেটর বা Android এমুলেটর থেকে পরীক্ষা করতে পারেন।
আপনি যখন কাল্পনিক ফোন নম্বর প্রদান করেন এবং যাচাইকরণ কোড পাঠান, তখন কোনো প্রকৃত SMS পাঠানো হয় না। পরিবর্তে, সাইন ইন সম্পূর্ণ করতে আপনাকে পূর্বে কনফিগার করা যাচাইকরণ কোড প্রদান করতে হবে।
সাইন-ইন সম্পূর্ণ হলে, সেই ফোন নম্বর দিয়ে একজন Firebase ব্যবহারকারী তৈরি করা হয়। ব্যবহারকারীর একটি বাস্তব ফোন নম্বর ব্যবহারকারীর মতো একই আচরণ এবং বৈশিষ্ট্য রয়েছে এবং একইভাবে Realtime Database / Cloud Firestore এবং অন্যান্য পরিষেবাগুলি অ্যাক্সেস করতে পারে৷ এই প্রক্রিয়ার সময় যে আইডি টোকেনটি মিন্ট করা হয়েছে তাতে একজন প্রকৃত ফোন নম্বর ব্যবহারকারীর মতোই স্বাক্ষর রয়েছে।
আরেকটি বিকল্প হল এই ব্যবহারকারীদের উপর কাস্টম দাবির মাধ্যমে একটি পরীক্ষার ভূমিকা সেট করা যাতে আপনি তাদের অ্যাক্সেসকে আরও সীমিত করতে চান তাহলে তাদের জাল ব্যবহারকারী হিসাবে আলাদা করতে পারেন।
ইন্টিগ্রেশন টেস্টিং
ম্যানুয়াল টেস্টিং ছাড়াও, Firebase Authentication ফোন প্রমাণীকরণ পরীক্ষার জন্য ইন্টিগ্রেশন পরীক্ষা লিখতে সহায়তা করার জন্য API প্রদান করে। এই APIগুলি ওয়েবে reCAPTCHA প্রয়োজনীয়তা এবং iOS-এ নীরব পুশ ��িজ্ঞপ্তিগুলি অক্ষম করে অ্যাপ যাচাইকরণ অক্ষম করে৷ এটি এই প্রবাহে অটোমেশন পরীক্ষাক�� সম্ভব করে তোলে এবং বাস্তবায়ন করা সহজ করে তোলে। উপরন্তু, তারা Android এ তাৎক্ষণিক যাচাইকরণ প্রবাহ পরীক্ষা করার ক্ষমতা প্রদান করতে সাহায্য করে।
ওয়েবে, firebase.auth.RecaptchaVerifier
রেন্ডার করার আগে appVerificationDisabledForTesting
true
সেট করুন। এটি স্বয়ংক্রিয়ভাবে reCAPTCHA সমাধান করে, আপনাকে ফোন নম্বরটি ম্যানুয়ালি সমাধান না করে পাস করার অনুমতি দেয়৷ মনে রাখবেন যে যদিও reCAPTCHA অক্ষম করা হয়েছে, একটি অ-কাল্পনিক ফোন নম্বর ব্যবহার করে এখনও সাইন ইন সম্পূর্ণ করতে ব্যর্থ হবে। শুধুমাত্র কাল্পনিক ফোন নম্বর এই API এর সাথে ব্যবহার করা যেতে পারে।
// Turn off phone auth app verification. firebase.auth().settings.appVerificationDisabledForTesting = true; var phoneNumber = "+16505554567"; var testVerificationCode = "123456"; // This will render a fake reCAPTCHA as appVerificationDisabledForTesting is true. // This will resolve after rendering without app verification. var appVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container'); // signInWithPhoneNumber will call appVerifier.verify() which will resolve with a fake // reCAPTCHA response. firebase.auth().signInWithPhoneNumber(phoneNumber, appVerifier) .then(function (confirmationResult) { // confirmationResult can resolve with the fictional testVerificationCode above. return confirmationResult.confirm(testVerificationCode) }).catch(function (error) { // Error; SMS not sent // ... });
দৃশ্যমান এবং অদৃশ্য মক reCAPTCHA অ্যাপ যাচাইকারীরা ভিন্নভাবে আচরণ করে যখন অ্যাপ যাচাইকরণ অক্ষম থাকে:
- দৃশ্যমান reCAPTCHA : যখন দৃশ্যমান reCAPTCHA
appVerifier.render()
এর মাধ্যমে রেন্ডার করা হয়, তখন এটি একটি সেকেন্ড বিলম্বের একটি ভগ্নাংশের পরে স্বয়ংক্রিয়ভাবে সমাধান করে। এটি রেন্ডারিংয়ের সাথে সাথেই reCAPTCHA-এ ক্লিক করার ব্যবহারকারীর সমতুল্য। reCAPTCHA প্রতিক্রিয়া কিছু সময়ের পর�� ��ে��়াদ ��ে�� হয়ে যাবে এবং তারপর আবার স্বয়ংক্রিয়ভাবে সমাধান হবে। - অদৃশ্য reCAPTCHA : অদৃশ্য reCAPTCHA রেন্ডারিং-এ স্বয়ংক্রিয়ভাবে সমাধান করে না এবং পরিবর্তে
appVerifier.verify()
কলে বা যখন reCAPTCHA-এর বোতাম অ্যাঙ্করটি সেকেন্ড বিলম্বের একটি ভগ্নাংশের পরে ক্লিক করা হয় তখন তা করে। একইভাবে, কিছু সময়ের পরে প্রতিক্রিয়ার মেয়াদ শেষ হয়ে যাবে এবং শুধুমাত্রappVerifier.verify()
কলের পরে অথবা reCAPTCHA-এর বোতাম অ্যাঙ্করে আবার ক্লিক করার পরেই স্বয়ংক্রিয়ভাবে সমাধান হবে।
যখনই একটি মক reCAPTCHA সমাধান করা হয়, সংশ্লিষ্ট কলব্যাক ফাংশনটি জাল প্রতিক্রিয়ার সাথে প্রত্যাশিতভাবে ট্রিগার হয়৷ যদি একটি মেয়াদ শেষ হওয়ার কলব্যাকও নির্দিষ্ট করা থাকে তবে এটি মেয়াদ শেষ হওয়ার সময় ট্রিগার করবে।
পরবর্তী পদক্ষেপ
একজন ব্যবহারকারী প্রথমবার সাইন ইন করার পরে, একটি নতুন ব্যবহারকারীর অ্যাকাউন্ট তৈরি করা হয় এবং শংসাপত্রগুলির সাথে লিঙ্ক করা হয়—অর্থাৎ, ব্যবহারকারীর নাম এবং পাসওয়ার্ড, ফোন নম্বর, বা প্রমাণ প্রদানকারীর তথ্য — ব্যবহারকারী সাইন ইন করেছেন। এই নতুন অ্যাকাউন্টটি আপনার ফায়ারবেস প্রকল্পের অংশ হিসাবে সংরক্ষণ করা হয়েছে এবং ব্যবহারকারী কীভাবে সাইন ইন করুন না কেন, আপনার প্রকল্পের প্রতিটি অ্যাপ জুড়ে একজন ব্যবহারকারীকে শনাক্ত করতে ব্যবহার করা যেতে পারে।
আপনার অ্যাপে, আপনার ব্যবহারকারীর প্রমাণীকরণের স্থিতি জানার প্রস্তাবিত উপায় হল
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. });