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

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

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

তুমি শুরু করার আগে

যদি আপনি ইতিমধ্যে না করে থাকেন, তাহলে Firebase কনসোল থেকে আপনার জাভাস্ক্রিপ্ট প্রোজেক্টে Firebase যোগ করুন -এ বর্ণিত প্রাথমিক স্নিপেটটি আপনার প্রকল্পে অনুলিপি করুন।

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

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

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

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

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

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

Firebase-এর ফোন নম্বর সাইন-ইন অনুরোধের কোটা যথেষ্ট বেশি যে বেশিরভাগ অ্যাপ প্রভাবিত হবে না। যাইহোক, যদি আপনাকে ফোন প্রমাণীকরণের মাধ্যমে খুব বেশি পরিমাণ ব্যবহারকারীদের সাইন ইন করতে হয়, তাহলে আপনাকে আপনার মূল্য পরিকল্পনা আপগ্রেড করতে হতে পারে। মূল্য পৃষ্ঠা দেখুন.

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

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

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

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

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

Web version 9

import { getAuth } from "firebase/auth";

const auth = getAuth();
auth.languageCode = 'it';
// To apply the default browser preference instead of explicitly setting it.
// firebase.auth().useDeviceLanguage();

Web version 8

firebase.auth().languageCode = 'it';
// To apply the default browser preference instead of explicitly setting it.
// firebase.auth().useDeviceLanguage();

অদৃশ্য reCAPTCHA ব্যবহার করুন

একটি অদৃশ্য reCAPTCHA ব্যবহার করতে, size প্যারামিটার সহ একটি RecaptchaVerifier অবজেক্ট তৈরি করুন যেটি আপনার সাইন-ইন ফর্ম জমা দেয় সেই বোতামটির ID উল্লেখ করে invisible সেট করুন৷ উদাহরণ স্বরূপ:

Web version 9

import { getAuth, RecaptchaVerifier } from "firebase/auth";

const auth = getAuth();
window.recaptchaVerifier = new RecaptchaVerifier('sign-in-button', {
  'size': 'invisible',
  'callback': (response) => {
    // reCAPTCHA solved, allow signInWithPhoneNumber.
    onSignInSubmit();
  }
}, auth);

Web version 8

window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('sign-in-button', {
  'size': 'invisible',
  'callback': (response) => {
    // reCAPTCHA solved, allow signInWithPhoneNumber.
    onSignInSubmit();
  }
});

reCAPTCHA উইজেট ব্যবহার করুন

দৃশ্যমান reCAPTCHA উইজেটটি ব্যবহার করতে, আপনার পৃষ্ঠায় উইজেটটি ধারণ করার জন্য একটি উপাদান তৈরি করুন এবং তারপরে একটি RecaptchaVerifier অবজেক্ট তৈরি করুন, যখন আপনি এটি করবেন তখন কন্টেইনারটির ID উল্লেখ করুন৷ উদাহরণ স্বরূপ:

Web version 9

import { getAuth, RecaptchaVerifier } from "firebase/auth";

const auth = getAuth();
window.recaptchaVerifier = new RecaptchaVerifier('recaptcha-container', {}, auth);

Web version 8

window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container');

ঐচ্ছিক: reCAPTCHA প্যারামিটার নির্দিষ্ট করুন

আপনি ঐচ্ছিকভাবে RecaptchaVerifier অবজেক্টে কলব্যাক ফাংশন সেট করতে পারেন যা ব্যবহারকারী যখন reCAPTCHA সমাধান করে বা ব্যবহারকারী ফর্ম জমা দেওয়ার আগে reCAPTCHA মেয়াদ শেষ হয়ে যায় তখন কল করা হয়:

Web version 9

import { getAuth, RecaptchaVerifier } from "firebase/auth";

const auth = getAuth();
window.recaptchaVerifier = new RecaptchaVerifier('recaptcha-container', {
  'size': 'normal',
  'callback': (response) => {
    // reCAPTCHA solved, allow signInWithPhoneNumber.
    // ...
  },
  'expired-callback': () => {
    // Response expired. Ask user to solve reCAPTCHA again.
    // ...
  }
}, auth);

Web version 8

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 version 9

recaptchaVerifier.render().then((widgetId) => {
  window.recaptchaWidgetId = widgetId;
});

Web version 8

recaptchaVerifier.render().then((widgetId) => {
  window.recaptchaWidgetId = widgetId;
});

render সমাধানের পরে, আপনি reCAPTCHA এর উইজেট আইডি পাবেন, যা আপনি reCAPTCHA API-তে কল করতে ব্যবহার করতে পারেন:

Web version 9

const recaptchaResponse = grecaptcha.getResponse(recaptchaWidgetId);

Web version 8

const recaptchaResponse = grecaptcha.getResponse(recaptchaWidgetId);

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

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

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

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

  2. Call signInWithPhoneNumber , এটিতে ব্যবহারকারীর ফোন নম্বর এবং আপনার আগে তৈরি করা RecaptchaVerifier পাঠান।

    Web version 9

    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 version 8

    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 প্রমাণীকরণ ব্যবহারকারীর ফোনে একটি যাচাইকরণ কোড সহ একটি SMS বার্তা পাঠাতে অনুরোধ করে।

যাচাইকরণ কোড দিয়ে ব্যবহারকারীকে সাইন ইন করুন

signInWithPhoneNumber এ কল সফল হওয়ার পর, ব্যবহারকারীকে SMS এর মাধ্যমে প্রাপ্ত যাচাইকরণ কোডটি টাইপ করতে বলুন। তারপর, ConfirmationResult অবজেক্টের confirm পদ্ধতিতে কোডটি পাস করে ব্যবহারকারীকে সাইন ইন করুন যা signInWithPhoneNumber এর পরিপূর্ণতা হ্যান্ডলারে পাস করা হয়েছিল (অর্থাৎ, এটি then ব্লক)। উদাহরণ স্বরূপ:

Web version 9

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 version 8

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 অবজেক্ট পেতে চান, নিশ্চিতকরণ ফলাফল থেকে যাচাইকরণ কোড এবং PhoneAuthProvider.credential এ যাচাইকরণ কোডটি পাস করুন confirm :

var credential = firebase.auth.PhoneAuthProvider.credential(confirmationResult.verificationId, code);

তারপর, আপনি শংসাপত্রের সাথে ব্যবহারকারীকে সাইন ইন করতে পারেন:

firebase.auth().signInWithCredential(credential);

কাল্পনিক ফোন নম্বর দিয়ে পরীক্ষা করুন

আপনি Firebase কনসোলের মাধ্যমে বিকাশের জন্য কাল্পনিক ফোন নম্বর সেট আপ করতে পারেন। কাল্পনিক ফোন নম্বর দিয়ে পরীক্ষা করা এই সুবিধাগুলি প্রদান করে:

  • আপনার ব্যবহারের কোটা ব্যবহার না করে ফোন নম্বর প্রমাণীকরণ পরীক্ষা করুন।
  • একটি প্রকৃত SMS বার্তা না পাঠিয়ে ফোন নম্বর প্রমাণীকরণ পরীক্ষা করুন।
  • থ্রোটল না হয়ে একই ফোন নম্বর দিয়ে একটানা পরীক্ষা চালান। এটি অ্যাপ স্টোর পর্যালোচনা প্রক্রিয়া চলাকালীন প্রত্যাখ্যানের ঝুঁকি কমিয়ে দেয় যদি পর্যালোচক পরীক্ষার জন্য একই ফোন নম্বর ব্যবহার করেন।
  • কোনও অতিরিক্ত প্রচেষ্টা ছাড়াই বিকাশের পরিবেশে সহজেই পরীক্ষা করুন, যেমন Google Play পরিষেবাগুলি ছাড়াই iOS সিমুলেটর বা Android এমুলেটরে বিকাশ করার ক্ষমতা।
  • প্রোডাকশন এনভায়রনমেন্টে রিয়েল ফোন নম্বরে সাধারণত প্রয়োগ করা নিরাপত্তা চেক দ্বারা ব্লক না হয়ে ইন্টিগ্রেশন পরীক্ষা লিখুন।

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

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

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

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

ম্যানুয়াল টেস্টিং

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

আপনি যখন কাল্পনিক ফোন নম্বর প্রদান করেন এবং যাচাইকরণ কোড পাঠান, তখন কোনো প্রকৃত SMS পাঠানো হয় না। পরিবর্তে, সাইন ইন সম্পূর্ণ করতে আপনাকে পূর্বে কনফিগার করা যাচাইকরণ কোড প্রদান করতে হবে।

সাইন-ইন সম্পূর্ণ হলে, সেই ফোন নম্বর দিয়ে একজন Firebase ব্যবহারকারী তৈরি করা হয়। ব্যবহারকারীর একটি বাস্তব ফোন নম্বর ব্যবহারকারীর মতো একই আচরণ এবং বৈশিষ্ট্য রয়েছে এবং একইভাবে রিয়েলটাইম ডেটাবেস/ক্লাউড ফায়ারস্টোর এবং অন্যান্য পরিষেবাগুলি অ্যাক্সেস করতে পারে। এই প্রক্রিয়ার সময় যে আইডি টোকেনটি মিন্ট করা হয়েছে তাতে একজন প্রকৃত ফোন নম্বর ব্যবহারকারীর মতোই স্বাক্ষর রয়েছে।

আরেকটি বিকল্প হল এই ব্যবহারকারীদের উপর কাস্টম দাবির মাধ্যমে একটি পরীক্ষার ভূমিকা সেট করা যাতে আপনি তাদের অ্যাক্সেসকে আরও সীমাবদ্ধ করতে চান তাহলে তাদের জাল ব্যবহারকারী হিসাবে আলাদা করতে পারেন।

ইন্টিগ্রেশন টেস্টিং

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

  • আপনার ফায়ারবেস রিয়েলটাইম ডেটাবেস এবং ক্লাউড স্টোরেজ নিরাপত্তা নিয়মে , আপনি auth ভেরিয়েবল থেকে সাইন-ইন করা ব্যবহারকারীর অনন্য ব্যবহারকারী আইডি পেতে পারেন এবং ব্যবহারকারী কোন ডেটা অ্যাক্সেস করতে পারে তা নিয়ন্ত্রণ করতে এটি ব্যবহার করতে পারেন।

আপনি একটি বিদ্যমান ব্যবহারকারীর অ্যাকাউন্টে প্রমাণীকরণ প্রদানকারীর শংসাপত্র লিঙ্ক করে একাধিক প্রমাণীকরণ প্রদানকারী ব্যবহার করে ব্যবহারকারীদের আপনার অ্যাপে সাইন ইন করার অনুমতি দিতে পারেন।

একজন ব্যবহারকারীকে সাইন আউট করতে, signOut কল করুন:

Web version 9

import { getAuth, signOut } from "firebase/auth";

const auth = getAuth();
signOut(auth).then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});

Web version 8

firebase.auth().signOut().then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});