জাভাস্ক্রিপ্ট ব্যবহার করে একটি ফোন নম্বর দিয়ে ফায়ারবেস দিয়ে প্রমাণীকরণ করুন, জাভাস্ক্রিপ্ট ব্যবহার করে ফোন নম্বর দিয়ে ফায়ারবেসের সাথে প্রমাণীকরণ করুন

আপনি ব্যবহারকারীর ফোনে একটি SMS বার্তা পাঠিয়ে Firebase Authentication ব্যবহার করে সাইন ইন করতে পারেন। ব্যবহারকারী SMS বার্তায় থাকা একটি এককালীন কোড ব্যবহার করে সাইন ইন করেন।

আপনার অ্যাপে ফোন নম্বর সাইন-ইন যোগ করার সবচেয়ে সহজ উপায় হল FirebaseUI ব্যবহার করা, যার মধ্যে একটি ড্রপ-ইন সাইন-ইন উইজেট রয়েছে যা ফোন নম্বর সাইন-ইনের জন্য সাইন-ইন প্রবাহ, পাশাপাশি পাসওয়ার্ড-ভিত্তিক এবং ফেডারেটেড সাইন-ইন বাস্তবায়ন করে। এই নথিতে Firebase SDK ব্যবহার করে কীভাবে একটি ফোন নম্বর সাইন-ইন প্রবাহ বাস্তবায়ন করা যায় তা বর্ণনা করা হয়েছে।

শুরু করার আগে

যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে Firebase কনসোল থেকে আপনার প্রকল্পে initialization snippet টি অনুলিপি করুন যেমনটি Add Firebase to your JavaScript project এ বর্ণিত হয়েছে।

নিরাপত্তা উদ্বেগ

শুধুমাত্র একটি ফোন নম্বর ব্যবহার করে প্রমাণীকরণ সুবিধাজনক হলেও, অন্যান্য উপলব্ধ পদ্ধতির তুলনায় কম নিরাপদ, কারণ একটি ফোন নম্বরের মালিকানা সহজেই ব্যবহারকারীদের মধ্যে স্থানান্তর করা যেতে পারে। এছাড়াও, একাধিক ব্যবহারকারীর প্রোফাইলযুক্ত ডিভাইসগুলিতে, যে কোনও ব্যবহারকারী যিনি SMS বার্তা পেতে পারেন তিনি ডিভাইসের ফোন নম্বর ব্যবহার করে একটি অ্যাকাউন্টে সাইন ইন করতে পারেন।

যদি আপনি আপনার অ্যাপে ফোন নম্বর ভিত্তিক সাইন-ইন ব্যবহার করেন, তাহলে আপনার এটি আরও নিরাপদ সাইন-ইন পদ্ধতির পাশাপাশি অফার করা উচিত এবং ব্যবহারকারীদের ফোন নম্বর সাইন-ইন ব্যবহারের নিরাপত্তা বিনিময় সম্পর্কে অবহিত করা উচিত।

আপনার Firebase প্রকল্পের জন্য ফোন নম্বর সাইন-ইন সক্ষম করুন

SMS এর মাধ্যমে ব্যবহারকারীদের সাইন ইন করতে, আপনাকে প্রথমে আপনার Firebase প্রকল্পের জন্য ফোন নম্বর সাইন-ইন পদ্ধতি সক্ষম করতে হবে:

  1. Firebase কনসোলে , প্রমাণীকরণ বিভাগটি খুলুন।
  2. সাইন-ইন পদ্ধতি পৃষ্ঠায়, ফোন নম্বর সাইন-ইন পদ্ধতি সক্ষম করুন।
  3. সেটিংস পৃষ্ঠায়, আপনি যে অঞ্চলগুলিতে SMS বার্তা প্রেরণের অনুমতি দিতে বা অস্বীকার করতে চান তার উপর একটি নীতি সেট করুন। নতুন প্রকল্পের জন্য, ডিফল্ট নীতি কোনও অঞ্চলকে অনুমতি দেয় না।
  4. একই পৃষ্ঠায়, যদি আপনার অ্যাপটি হোস্ট করবে এমন ডোমেনটি OAuth রিডাইরেক্ট ডোমেন বিভাগে তালিকাভুক্ত না থাকে, তাহলে আপনার ডোমেনটি যোগ করুন। মনে রাখবেন যে ফোন অনুমোদনের উদ্দেশ্যে হোস্টেড ডোমেন হিসাবে লোকালহোস্ট অনুমোদিত নয়।

reCAPTCHA যাচাইকারী সেট আপ করুন

ব্যবহারকারীদের ফোন নম্বর দিয়ে সাইন ইন করার আগে, আপনাকে Firebase এর reCAPTCHA যাচাইকারী সেট আপ করতে হবে। অপব্যবহার রোধ করতে Firebase reCAPTCHA ব্যবহার করে, যেমন ফোন নম্বর যাচাইকরণের অনুরোধটি আপনার অ্যাপের অনুমোদিত ডোমেনগুলির একটি থেকে এসেছে তা নিশ্চিত করে।

আপনাকে ম্যানুয়ালি reCAPTCHA ক্লায়েন্ট সেট আপ করার দরকার নেই; যখন আপনি Firebase SDK এর RecaptchaVerifier অবজেক্ট ব্যবহার করেন, তখন Firebase স্বয়ংক্রিয়ভাবে যেকোনো প্রয়োজনীয় ক্লায়েন্ট কী এবং গোপনীয়তা তৈরি করে এবং পরিচালনা করে।

RecaptchaVerifier অবজেক্টটি অদৃশ্য reCAPTCHA সমর্থন করে, যা প্রায়শই কোনও ব্যবহারকারীর পদক্ষেপ ছাড়াই ব্যবহারকারীকে যাচাই করতে পারে, সেইসাথে reCAPTCHA উইজেট, যা সফলভাবে সম্পন্ন করার জন্য সর্বদা ব্যবহারকারীর ইন্টারঅ্যাকশনের প্রয়োজন হয়।

reCAPTCHA রেন্ডার করার আগে Auth ইনস্ট্যান্সে ভাষা কোড আপডেট করে ব্যবহারকারীর পছন্দ অনুসারে রেন্ডার করা reCAPTCHA স্থানীয়করণ করা যেতে পারে। উপরে উল্লিখিত স্থানীয়করণ ব্যবহারকারীকে পাঠানো যাচাইকরণ কোড সম্বলিত SMS বার্তার ক্ষেত্রেও প্রযোজ্য হবে।

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 ব্যবহার করতে, একটি RecaptchaVerifier অবজেক্ট তৈরি করুন যার size প্যারামিটারটি invisible এ সেট করা আছে, যেখানে আপনার সাইন-ইন ফর্ম জমা দেওয়ার বোতামটির ID উল্লেখ করা আছে। উদাহরণস্বরূপ:

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 অবজেক্ট তৈরি করুন, যখন আপনি এটি করবেন তখন কন্টেইনারের আইডি উল্লেখ করে। উদাহরণস্বরূপ:

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);

ব্যবহারকারীর ফোনে একটি যাচাইকরণ কোড পাঠান

ফোন নম্বর সাইন-ইন শুরু করতে, ব্যবহারকারীকে একটি ইন্টারফেস উপস্থাপন করুন যা তাদের ফোন নম্বর প্রদান করতে অনুরোধ করবে, এবং তারপর signInWithPhoneNumber এ কল করে Firebase-কে SMS এর মাধ্যমে ব্যবহারকারীর ফোনে একটি প্রমাণীকরণ কোড পাঠাতে অনুরোধ করুন:

  1. ব্যবহারকারীর ফোন নম্বর পান।

    আইনি প্রয়োজনীয়তা ভিন্ন, তবে সর্বোত্তম অনুশীলন হিসেবে এবং আপনার ব্যবহারকারীদের জন্য প্রত্যাশা নির্ধারণের জন্য, আপনার তাদের জানানো উচিত যে যদি তারা ফোন সাইন-ইন ব্যবহার করে, তাহলে তারা যাচাইকরণের জন্য একটি SMS বার্তা পেতে পারে এবং স্ট্যান্ডার্ড রেট প্রযোজ্য হতে পারে।

  2. 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-এর মাধ্যমে প্রাপ্ত যাচাইকরণ কোডটি টাইপ করতে বলুন। তারপর, signInWithPhoneNumber এর পূর্ণতা হ্যান্ডলারে (অর্থাৎ, এটি then ব্লক) পাস করা ConfirmationResult অবজেক্টের confirm পদ্ধতিতে কোডটি পাস করে ব্যবহারকারীকে সাইন ইন করুন। উদাহরণস্বরূপ:

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 বার্তা না পাঠিয়ে ফোন নম্বর প্রমাণীকরণ পরীক্ষা করুন।
  • একই ফোন নম্বর দিয়ে পরপর পরীক্ষা চালান, কোনও বাধা ছাড়াই। অ্যাপ স্টোর পর্যালোচনা প্রক্রিয়ার সময় যদি পর্যালোচক একই ফোন নম্বর ব্যবহার করে পরীক্ষার জন্য আবেদন করেন, তাহলে এটি প্রত্যাখ্যানের ঝুঁকি কমিয়ে দেয়।
  • কোনও অতিরিক্ত প্রচেষ্টা ছাড়াই ডেভেলপমেন্ট পরিবেশে সহজেই পরীক্ষা করুন, যেমন গুগল প্লে পরিষেবা ছাড়াই iOS সিমুলেটর বা অ্যান্ড্রয়েড এমুলেটরে ডেভেলপ করার ক্ষমতা।
  • উৎপাদন পরিবেশে প্রকৃত ফোন নম্বরগুলিতে সাধারণত প্রয়োগ করা নিরাপত্তা চেক দ্বারা ব্লক না হয়ে ইন্টিগ্রেশন পরীক্ষা লিখুন।

কাল্পনিক ফোন নম্বরগুলিকে অবশ্যই এই প্রয়োজনীয়তাগুলি পূরণ করতে হবে:

  1. নিশ্চিত করুন যে আপনি এমন ফোন নম্বর ব্যবহার করছেন যা আসলে কাল্পনিক, এবং ইতিমধ্যে বিদ্যমান নয়। Firebase Authentication আপনাকে প্রকৃত ব্যবহারকারীদের দ্বারা ব্যবহৃত বিদ্যমান ফোন নম্বরগুলিকে পরীক্ষা নম্বর হিসাবে সেট করার অনুমতি দেয় না। একটি বিকল্প হল 555 টি প্রিফিক্সযুক্ত নম্বরকে মার্কিন পরীক্ষার ফোন নম্বর হিসাবে ব্যবহার করা, উদাহরণস্বরূপ: +1 650-555-3434
  2. ফোন নম্বরগুলির দৈর্ঘ্য এবং অন্যান্য সীমাবদ্ধতার জন্য সঠিকভাবে ফর্ম্যাট করতে হবে। প্রকৃত ব্যবহারকারীর ফোন নম্বরের মতোই তাদের যাচাইকরণের মধ্য দিয়ে যেতে হবে।
  3. ডেভেলপমেন্টের জন্য আপনি সর্বোচ্চ ১০টি ফোন নম্বর যোগ করতে পারেন।
  4. অনুমান করা কঠিন এমন পরীক্ষামূলক ফোন নম্বর/কোড ব্যবহার করুন এবং ঘন ঘন সেগুলি পরিবর্তন করুন।

কাল্পনিক ফোন নম্বর এবং যাচাইকরণ কোড তৈরি করুন

  1. Firebase কনসোলে , প্রমাণীকরণ বিভাগটি খুলুন।
  2. সাইন ইন পদ্ধতি ট্যাবে, যদি আপনি ইতিমধ্যে ফোন প্রদানকারী সক্ষম না করে থাকেন তবে তা সক্রিয় করুন।
  3. অ্যাকর্ডিয়ন মেনু পরীক্ষা করার জন্য ফোন নম্বর খুলুন।
  4. আপনি যে ফোন নম্বরটি পরীক্ষা করতে চান তা প্রদান করুন, উদাহরণস্বরূপ: +1 650-555-3434
  5. সেই নির্দিষ্ট নম্বরের জন্য ৬-সংখ্যার যাচাইকরণ কোডটি প্রদান করুন, উদাহরণস্বরূপ: 654321
  6. নম্বরটি যোগ করুন । যদি প্রয়োজন হয়, তাহলে আপনি সংশ্লিষ্ট সারির উপর কার্সার রেখে এবং ট্র্যাশ আইকনে ক্লিক করে ফোন নম্বর এবং এর কোডটি মুছে ফেলতে পারেন।

ম্যানুয়াল পরীক্ষা

আপনি সরাসরি আপনার অ্যাপ্লিকেশনে একটি কাল্পনিক ফোন নম্বর ব্যবহার শুরু করতে পারেন। এটি আপনাকে কোটা সমস্যা বা থ্রোটলিং ছাড়াই ডেভেলপমেন্ট পর্যায়ে ম্যানুয়াল পরীক্ষা করার সুযোগ দেয়। আপনি Google Play পরিষেবা ইনস্টল না করেই iOS সিমুলেটর বা অ্যান্ড্রয়েড এমুলেটর থেকে সরাসরি পরীক্ষা করতে পারেন।

যখন আপনি কাল্পনিক ফোন নম্বরটি প্রদান করেন এবং যাচাইকরণ কোডটি পাঠান, তখন কোনও প্রকৃত 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 সমাধান করা হয়, তখন সংশ্লিষ্ট কলব্যাক ফাংশনটি জাল প্রতিক্রিয়ার সাথে প্রত্যাশা অনুযায়ী ট্রিগার হয়। যদি একটি মেয়াদোত্তীর্ণ কলব্যাকও নির্দিষ্ট করা থাকে, তবে এটি মেয়াদোত্তীর্ণের সময় ট্রিগার হবে।

পরবর্তী পদক্ষেপ

একজন ব্যবহারকারী প্রথমবার সাইন ইন করার পর, একটি নতুন ব্যবহারকারী অ্যাকাউন্ট তৈরি করা হয় এবং শংসাপত্রের সাথে লিঙ্ক করা হয়—অর্থাৎ, ব্যবহারকারীর নাম এবং পাসওয়ার্ড, ফোন নম্বর, অথবা প্রমাণীকরণ প্রদানকারীর তথ্য—যার মাধ্যমে ব্যবহারকারী সাইন ইন করেছেন। এই নতুন অ্যাকাউন্টটি আপনার 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.
});