আপনার অ্যাপটিকে প্রমাণীকরণ এমুলেটরের সাথে সংযুক্ত করুন

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

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

আমি প্রমাণীকরণ এমুলেটর দিয়ে কি করতে পারি?

প্রমাণীকরণ এমুলেটর ফায়ারবেস প্রমাণীকরণ পরিষেবাগুলির উচ্চ-বিশ্বস্ত স্থানীয় অনুকরণ সরবরাহ করে, যা উত্পাদন ফায়ারবেস প্রমাণীকরণে পাওয়া বেশিরভাগ কার্যকারিতা প্রদান করে। অ্যাপল প্ল্যাটফর্ম, অ্যান্ড্রয়েড এবং ওয়েব ফায়ারবেস SDK-এর সাথে যুক্ত, এমুলেটর আপনাকে অনুমতি দেয়:

  • ইমেল/পাসওয়ার্ড, ফোন নম্বর/এসএমএস, এসএমএস মাল্টি-ফ্যাক্টর এবং থার্ড-পার্টি (যেমন Google) পরিচয় প্রদানকারী প্রমাণীকরণ পরীক্ষার জন্য অনুকরণ করা ব্যবহারকারী অ্যাকাউন্টগুলি তৈরি করুন, আপডেট করুন এবং পরিচালনা করুন
  • অনুকরণ করা ব্যবহারকারীদের দেখুন এবং সম্পাদনা করুন
  • প্রোটোটাইপ কাস্টম টোকেন প্রমাণীকরণ সিস্টেম
  • এমুলেটর UI লগ ট্যাবে প্রমাণীকরণ-সম্পর্কিত বার্তাগুলি পরীক্ষা করুন৷

একটি ফায়ারবেস প্রকল্প বেছে নিন

Firebase স্থানীয় এমুলেটর স্যুট একটি একক Firebase প্রকল্পের জন্য পণ্য অনুকরণ করে।

ব্যবহার করার জন্য প্রজেক্ট নির্বাচন করতে, আপনি এমুলেটরগুলি শুরু করার আগে, CLI-এ আপনার কাজের ডিরেক্টরিতে firebase use । অথবা, আপনি প্রতিটি এমুলেটর কমান্ডে --project পতাকা পাস করতে পারেন।

স্থানীয় এমুলেটর স্যুট বাস্তব ফায়ারবেস প্রকল্প এবং ডেমো প্রকল্পের অনুকরণ সমর্থন করে।

প্রকল্পের ধরন বৈশিষ্ট্য এমুলেটরগুলির সাথে ব্যবহার করুন
রিয়াল

একটি আসল ফায়ারবেস প্রজেক্ট হল আপনি তৈরি এবং কনফিগার করেছেন (সম্ভবত Firebase কনসোলের মাধ্যমে)।

বাস্তব প্রজেক্টে লাইভ রিসোর্স থাকে, যেমন ডাটাবেস ইনস্ট্যান্স, স্টোরেজ বাকেট, ফাংশন বা অন্য কোনো রিসোর্স যা আপনি সেই Firebase প্রোজেক্টের জন্য সেট আপ করেন।

বাস্তব ফায়ারবেস প্রকল্পগুলির সাথে কাজ করার সময়, আপনি যেকোন বা সমস্ত সমর্থিত পণ্যের জন্য এমুলেটর চালাতে পারেন।

যে কোনো পণ্যের জন্য আপনি অনুকরণ করছেন না, আপনার অ্যাপ এবং কোড লাইভ রিসোর্সের সাথে ইন্টারঅ্যাক্ট করবে (ডাটাবেস ইনস্ট্যান্স, স্টোরেজ বাকেট, ফাংশন, ইত্যাদি)।

ডেমো

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

ডেমো প্রজেক্টের জন্য প্রজেক্ট আইডিতে demo- প্রিফিক্স থাকে।

ডেমো ফায়ারবেস প্রকল্পগুলির সাথে কাজ করার সময়, আপনার অ্যাপ এবং কোড শুধুমাত্র এমুলেটরগুলির সাথে ইন্টারঅ্যাক্ট করে৷ যদি আপনার অ্যাপটি এমন একটি সংস্থানের সাথে ইন্টারঅ্যাক্ট করার চেষ্টা করে যার জন্য একটি এমুলেটর চলছে না, সেই কোডটি ব্যর্থ হবে৷

আমরা আপনাকে যেখানেই সম্ভব ডেমো প্রকল্প ব্যবহার করার পরামর্শ দিই। সুবিধার মধ্যে রয়েছে:

  • সহজ সেটআপ, যেহেতু আপনি ফায়ারবেস প্রজেক্ট তৈরি না করেই এমুলেটর চালাতে পারবেন
  • শক্তিশালী নিরাপত্তা, যেহেতু আপনার কোড ভুলবশত নন-ইমুলেটেড (উৎপাদন) সংস্থানগুলিকে আমন্ত্রণ জানায়, তবে ডেটা পরিবর্তন, ব্যবহার এবং বিলিং এর কোন সুযোগ নেই
  • ভাল অফলাইন সমর্থন, যেহেতু আপনার SDK কনফিগারেশন ডাউনলোড করতে ইন্টারনেট অ্যাক্সেস করার প্রয়োজন নেই৷

এমুলেটরের সাথে কথা বলার জন্য আপনার অ্যাপটিকে ইনস্ট্রুমেন্ট করুন

Android, iOS এবং ওয়েব SDK

নিম্নরূপ প্রমাণীকরণ এমুলেটরের সাথে ইন্টারঅ্যাক্ট করতে আপনার ইন-অ্যাপ কনফিগারেশন বা পরীক্ষার ক্লাস সেট আপ করুন।

Kotlin+KTX
Firebase.auth.useEmulator("10.0.2.2", 9099)
Java
FirebaseAuth.getInstance().useEmulator("10.0.2.2", 9099);
সুইফট
Auth.auth().useEmulator(withHost:"127.0.0.1", port:9099)

Web modular API

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

const auth = getAuth();
connectAuthEmulator(auth, "http://127.0.0.1:9099");

Web namespaced API

const auth = firebase.auth();
auth.useEmulator("http://127.0.0.1:9099");

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

অ্যাডমিন SDK

যখন FIREBASE_AUTH_EMULATOR_HOST এনভায়রনমেন্ট ভেরিয়েবল সেট করা থাকে তখন Firebase অ্যাডমিন SDK গুলি স্বয়ংক্রিয়ভাবে প্রমাণীকরণ এমুলেটরের সাথে সংযুক্ত হয়৷

export FIREBASE_AUTH_EMULATOR_HOST="127.0.0.1:9099"

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

এনভায়রনমেন্ট ভেরিয়েবল সেটের সাথে, ফায়ারবেস অ্যাডমিন SDKগুলি স্থানীয় উন্নয়ন এবং পরীক্ষার সুবিধার্থে প্রমাণীকরণ এমুলেটর (যথাক্রমে verifyIdToken এবং createSessionCookie পদ্ধতির মাধ্যমে) দ্বারা জারি করা স্বাক্ষরবিহীন আইডি টোকেন এবং সেশন কুকিগুলি গ্রহণ করবে। অনুগ্রহ করে নিশ্চিত করুন যে উৎপাদনে পরিবেশ পরিবর্তনশীল সেট না করা।

আপনি যদি চান আপনার অ্যাডমিন SDK কোডটি অন্য পরিবেশে চলমান একটি শেয়ার্ড এমুলেটরের সাথে সংযোগ করতে, তাহলে আপনাকে Firebase CLI ব্যবহার করে সেট করা একই প্রকল্প আইডি নির্দিষ্ট করতে হবে। আপনি সরাসরি initializeApp করতে একটি প্রজেক্ট আইডি পাস করতে পারেন বা GCLOUD_PROJECT পরিবেশ পরিবর্তনশীল সেট করতে পারেন।

Node.js অ্যাডমিন SDK
admin.initializeApp({ projectId: "your-project-id" });
পরিবেশ সূচক
export GCLOUD_PROJECT="your-project-id"

আইডি টোকেন

নিরাপত্তার কারণে, প্রমাণীকরণ এমুলেটর স্বাক্ষরবিহীন আইডি টোকেন ইস্যু করে, যা শুধুমাত্র অন্যান্য ফায়ারবেস এমুলেটর বা Firebase অ্যাডমিন SDK যখন কনফিগার করা হয় তখনই গৃহীত হয়। এই টোকেনগুলি উত্পাদন ফায়ারবেস পরিষেবা বা ফায়ারবেস অ্যাডমিন SDK উত্পাদন মোডে চলমান দ্বারা প্রত্যাখ্যান করা হবে (উদাহরণস্বরূপ উপরে বর্ণিত সেটআপ পদক্ষেপগুলি ছাড়াই ডিফল্ট আচরণ)।

এমুলেটর শুরু করুন

আপনি প্রমাণীকরণ এমুলেটরটি এমুলেটর স্যুট UI এর মাধ্যমে ইন্টারেক্টিভভাবে এবং এর স্থানীয় REST ইন্টারফেসের মাধ্যমে অ-ইন্টারেক্টিভভাবে ব্যবহার করতে পারেন। নিম্নলিখিত বিভাগগুলি ইন্টারেক্টিভ এবং অ-ইন্টারেক্টিভ ব্যবহারের ক্ষেত্রে কভার করে।

প্রমাণীকরণ এমুলেটর, এর REST ইন্টারফেস এবং এমুলেটর স্যুট UI শুরু করতে, চালান:

firebase emulators:start

বেনামী প্রমাণীকরণের জন্য, আপনার অ্যাপটি আপনার প্ল্যাটফর্মের ( iOS , Android , web ) সাইন-ইন যুক্তি প্রয়োগ করতে পারে।

ইমেল/পাসওয়ার্ড প্রমাণীকরণের জন্য, আপনি প্রমাণীকরণ SDK পদ্ধতি ব্যবহার করে বা এমুলেটর স্যুট UI ব্যবহার করে আপনার অ্যাপ থেকে প্রমাণীকরণ এমুলেটরে ব্যবহারকারীর অ্যাকাউন্ট যোগ করে প্রোটোটাইপিং শুরু করতে পারেন।

  1. এমুলেটর স্যুট UI-তে, প্রমাণীকরণ ট্যাবে ক্লিক করুন।
  2. ব্যবহারকারী যোগ করুন বোতামে ক্লিক করুন।
  3. ব্যবহারকারীর অ্যাকাউন্ট তৈরির উইজার্ড অনুসরণ করুন, ইমেল প্রমাণীকরণ ক্ষেত্রগুলি পূরণ করুন।

একটি পরীক্ষামূলক ব্যবহারকারী তৈরি করে, আপনার অ্যাপটি আপনার প্ল্যাটফর্মের ( iOS , Android , web ) জন্য SDK লজিক দিয়ে ব্যবহারকারীকে সাইন ইন এবং আউট করতে পারে।

ইমেল লিঙ্ক ফ্লো সহ ইমেল যাচাইকরণ/সাইন-ইন পরীক্ষা করার জন্য, এমুলেটর টার্মিনালে একটি URL প্রিন্ট করে যেখানে firebase emulators:start চালানো হয়েছিল।

i  To verify the email address customer@ex.com, follow this link:
http://127.0.0.1:9099/emulator/action?mode=verifyEmail&lang=en&oobCode=XYZ123&apiKey=fake-api-key

যাচাইকরণ ইভেন্টটি অনুকরণ করতে আপনার ব্রাউজারে লিঙ্কটি আটকান এবং যাচাইকরণ সফল হয়েছে কিনা তা পরীক্ষা করুন৷

{
  "authEmulator": {
    "success": "The email has been successfully verified.",
    "email": "customer@example.com"
  }
}

পাসওয়ার্ড রিসেট পরীক্ষা করার জন্য, এমুলেটর টার্মিনালে একটি নতুন পাসওয়ার্ড প্যারামিটার (যা আপনি প্রয়োজন অনুসারে পরিবর্তন করতে পারেন) সহ একটি অনুরূপ URL প্রিন্ট করে।

http://127.0.0.1:9099/emulator/action?mode=resetPassword&oobCode=XYZ!23&apiKey=fake-api-key&newPassword=YOUR_NEW_PASSWORD

অ-ইন্টারেক্টিভ টেস্টিং

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

অ-ইন্টারেক্টিভ ইমেল এবং পাসওয়ার্ড পরীক্ষা প্রবাহের জন্য, সাধারণ ক্রমটি নিম্নরূপ।

  1. প্রমাণীকরণ সাইনআপ REST এন্ডপয়েন্ট সহ ব্যবহারকারীদের তৈরি করুন৷
  2. পরীক্ষা করার জন্য ইমেল এবং পাসওয়ার্ড ব্যবহার করে ব্যবহারকারীদের সাইন ইন করুন।
  3. আপনার পরীক্ষার ক্ষেত্রে প্রযোজ্য হলে, এমুলেটর-নির্দিষ্ট REST এন্ডপয়েন্ট থেকে উপলব্ধ-ব্যান্ড-এর বাইরের ইমেল যাচাইকরণ কোডগুলি আনুন৷
  4. ডেটা ক্লিয়ার করার জন্য এমুলেটর-নির্দিষ্ট REST এন্ডপয়েন্ট দিয়ে ব্যবহারকারীর রেকর্ড ফ্লাশ করুন।

অনুকরণ করা ফোন/এসএমএস প্রমাণীকরণ

ফোন প্রমাণীকরণের জন্য, প্রমাণীকরণ এমুলেটর সমর্থন করে না:

  • reCAPTCHA এবং APN প্রবাহ। একবার এমুলেটরের সাথে ইন্টারঅ্যাক্ট করার জন্য কনফিগার করা হলে, ক্লায়েন্ট SDKগুলি এই যাচাইকরণ পদ্ধতিগুলিকে একীকরণ পরীক্ষার ( iOS , Android , web ) জন্য বর্ণিত পদ্ধতির অনুরূপভাবে নিষ্ক্রিয় করে৷
  • Firebase কনসোলে আগে থেকে কনফিগার করা কোড সহ ফোন নম্বর পরীক্ষা করুন।

অন্যথায়, ক্লায়েন্ট কোডের পরিপ্রেক্ষিতে, ফোন/এসএমএস প্রমাণীকরণ প্রবাহ উৎপাদনের জন্য বর্ণিত ( iOS , Android , web ) অনুরূপ।

এমুলেটর স্যুট UI ব্যবহার করে:

  1. এমুলেটর স্যুট UI-তে, প্রমাণীকরণ ট্যাবে ক্লিক করুন।
  2. ব্যবহারকারী যোগ করুন বোতামে ক্লিক করুন।
  3. ফোন প্রমাণীকরণ ক্ষেত্রগুলি পূরণ করে ব্যবহারকারী অ্যাকাউন্ট তৈরির উইজার্ড অনুসরণ করুন।

যাইহোক, ফোনের প্রমাণীকরণ প্রবাহের জন্য, এমুলেটর কোনো টেক্সট বার্তার ডেলিভারি ট্রিগার করবে না, যেহেতু একটি ক্যারিয়ারের সাথে যোগাযোগ করা সুযোগের বাইরে এবং স্থানীয় পরীক্ষার জন্য বন্ধুত্বপূর্ণ নয়! পরিবর্তে, এমুলেটর সেই কোডটি প্রিন্ট করে যা SMS এর মাধ্যমে একই টার্মিনালে পাঠানো হতো যেখানে আপনি firebase emulators:start ; ব্যবহারকারীদের তাদের টেক্সট মেসেজ চেক করার অনুকরণ করতে অ্যাপটিতে এই কোডটি ইনপুট করুন।

অ-ইন্টারেক্টিভ টেস্টিং

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

সাধারণ ক্রম নিম্নরূপ।

  1. যাচাইকরণ প্রক্রিয়া শুরু করতে প্ল্যাটফর্ম signInWithPhoneNumber এ কল করুন।
  2. এমুলেটর-নির্দিষ্ট REST এন্ডপয়েন্ট ব্যবহার করে যাচাইকরণ কোড পুনরুদ্ধার করুন।
  3. যাচাইকরণ কোড সহ যথারীতি confirmationResult.confirm(code) এ কল করুন।

মাল্টি-ফ্যাক্টর এসএমএস

প্রমাণীকরণ এমুলেটর প্রোটোটাইপিং এবং এসএমএস মাল্টি-ফ্যাক্টর অথেন্টিকেশন (MFA) প্রবাহকে iOS , Android এবং ওয়েবের জন্য উৎপাদনে উপলব্ধ করা সমর্থন করে।

আপনি যখন এমুলেটরে একজন মক ব্যবহারকারী যোগ করেন, তখন আপনি MFA সক্ষম করতে পারেন এবং এক বা একাধিক ফোন নম্বর কনফিগার করতে পারেন যেখানে দ্বিতীয় ফ্যাক্টর এসএমএস বার্তা পাঠানো হবে। বার্তাগুলি একই টার্মিনালে আউটপুট হয় যেখানে আপনি firebase emulators:start , এবং REST ইন্টারফেস থেকে উপলব্ধ।

অনুকরণ করা তৃতীয় পক্ষের পরিচয় প্রদানকারী (IDP) প্রমাণীকরণ

প্রমাণীকরণ এমুলেটর আপনাকে উত্পাদন কোড থেকে কোনো পরিবর্তন ছাড়াই আপনার iOS, Android বা ওয়েব অ্যাপে অনেক তৃতীয় পক্ষের প্রমাণীকরণ প্রবাহ পরীক্ষা করতে দেয়। প্রমাণীকরণ প্রবাহের উদাহরণের জন্য, আপনি আপনার অ্যাপে ব্যবহার করতে পারেন এমন প্রদানকারী এবং প্ল্যাটফর্মের বিভিন্ন সমন্বয়ের জন্য ডকুমেন্টেশন দেখুন।

সাধারণভাবে বলতে গেলে, আপনি দুটি উপায়ের মধ্যে একটিতে প্রমাণীকরণ করতে Firebase SDK ব্যবহার করতে পারেন:

  • আপনার অ্যাপটি SDK কে ক্রেডেনশিয়াল পুনরুদ্ধার করার জন্য তৃতীয় পক্ষের IDP প্রদানকারীদের সাথে সমস্ত মিথস্ক্রিয়া সহ সম্পূর্ণ প্রক্রিয়াটি শেষ থেকে শেষ পর্যন্ত পরিচালনা করতে দেয়৷
  • আপনার অ্যাপ ম্যানুয়ালি সেই পক্ষের SDK ব্যবহার করে তৃতীয়-পক্ষ প্রদানকারীর কাছ থেকে শংসাপত্রগুলি পুনরুদ্ধার করে এবং সেই প্রমাণপত্রগুলিকে প্রমাণীকরণ SDK-এ পাঠায়৷

আবার, উপরের ডকুমেন্টেশন লিঙ্কটি পরীক্ষা করুন এবং নিশ্চিত করুন যে আপনি যে কোন প্রবাহের সাথে পরিচিত - Firebase SDK-পরিচালিত বনাম ম্যানুয়াল শংসাপত্র পুনরুদ্ধার - আপনি ব্যবহার করতে চান৷ প্রমাণীকরণ এমুলেটর উভয় পদ্ধতির পরীক্ষা সমর্থন করে।

Firebase SDK-চালিত IDP প্রবাহ পরীক্ষা করা

যদি আপনার অ্যাপ ইন্টারেক্টিভ পরীক্ষার জন্য Microsoft, GitHub, বা Yahoo-এর সাথে সাইন-ইন করার জন্য OAuthProvider এর মতো Firebase SDK এন্ড-টু-এন্ড ফ্লো ব্যবহার করে, তাহলে প্রমাণীকরণ এমুলেটর আপনাকে পরীক্ষা করতে সাহায্য করার জন্য সংশ্লিষ্ট সাইন-ইন পৃষ্ঠার একটি স্থানীয় সংস্করণ পরিবেশন করে। signinWithPopup বা signInWithRedirect পদ্ধতি কল করে এমন ওয়েব অ্যাপ থেকে প্রমাণীকরণ। এই স্থানীয়ভাবে পরিবেশিত সাইন-ইন পৃষ্ঠাটি আপনার প্ল্যাটফর্মের ওয়েবভিউ লাইব্রেরি দ্বারা রেন্ডার করা মোবাইল অ্যাপগুলিতেও উপস্থিত হয়৷

এমুলেটর প্রবাহ এগিয়ে যাওয়ার সাথে সাথে প্রয়োজন অনুসারে মক থার্ড-পার্টি ব্যবহারকারী অ্যাকাউন্ট এবং শংসাপত্র তৈরি করে।

পরীক্ষামূলক IDP ম্যানুয়াল শংসাপত্র পুনরুদ্ধারের সাথে প্রবাহিত হয়

আপনি যদি "ম্যানুয়াল" সাইন-ইন কৌশল ব্যবহার করেন এবং আপনার প্ল্যাটফর্মের signInWithCredentials পদ্ধতিতে কল করেন, তাহলে, যথারীতি, আপনার অ্যাপ প্রকৃত তৃতীয় পক্ষের সাইন-ইন করার অনুরোধ করবে এবং প্রকৃত তৃতীয় পক্ষের শংসাপত্রগুলি পুনরুদ্ধার করবে৷

মনে রাখবেন যে এমুলেটর শুধুমাত্র Google সাইন-ইন, অ্যাপল এবং JSON ওয়েব টোকেন (JWTs) হিসাবে বাস্তবায়িত আইডি টোকেন ব্যবহার করে এমন অন্যান্য প্রদানকারীর কাছ থেকে প্রাপ্ত শংসাপত্রগুলির জন্য signInWithCredential প্রমাণীকরণ সমর্থন করে। অ্যাক্সেস টোকেন (যেমন ফেসবুক বা টুইটার দ্বারা সরবরাহ করা হয়, যেগুলি JWT নয়) সমর্থিত নয়। পরবর্তী বিভাগে এই ক্ষেত্রে একটি বিকল্প আলোচনা করা হয়েছে.

অ-ইন্টারেক্টিভ টেস্টিং

অ-ইন্টারেক্টিভ পরীক্ষার একটি পদ্ধতি হল এমুলেটর দ্বারা পরিবেশিত সাইন-ইন পৃষ্ঠায় ব্যবহারকারীর ক্লিকগুলি স্বয়ংক্রিয়ভাবে করা। ওয়েব অ্যাপের জন্য, WebDriver-এর মতো একটি কন্ট্রোল ইন্টারফেস ব্যবহার করুন। মোবাইলের জন্য, আপনার প্ল্যাটফর্ম থেকে এসপ্রেসো বা এক্সকোডের মতো UI টেস্ট টুলিং ব্যবহার করুন।

বিকল্পভাবে, আপনি signInWithCredential ব্যবহার করতে আপনার কোড আপডেট করতে পারেন (যেমন একটি কোড শাখায়) এবং আসল শংসাপত্রের পরিবর্তে অ্যাকাউন্টের জন্য মক আইডি টোকেন সহ একটি টোকেন প্রমাণীকরণ প্রবাহ ব্যবহার করতে পারেন।

  1. আপনার কোডের যে অংশটি IDP থেকে idTokens পুনরুদ্ধার করে সেটি রিওয়্যার করুন বা মন্তব্য করুন; এটি আপনার পরীক্ষার সময় প্রকৃত ব্যবহারকারীর নাম এবং পাসওয়ার্ড ইনপুট করার প্রয়োজনীয়তাকে সরিয়ে দেয় এবং IDP-এ API কোটা এবং হারের সীমা থেকে আপনার পরীক্ষাগুলি থেকে মুক্তি দেয়।
  2. দ্বিতীয়ত, signInWithCredential এর জন্য টোকেনের জায়গায় একটি আক্ষরিক JSON স্ট্রিং ব্যবহার করুন। একটি উদাহরণ হিসাবে ওয়েব SDK ব্যবহার করে, আপনি কোডটি এতে পরিবর্তন করতে পারেন:
firebase.auth().signInWithCredential(firebase.auth.GoogleAuthProvider.credential(
  '{"sub": "abc123", "email": "foo@example.com", "email_verified": true}'
));

এমুলেটরের সাথে ব্যবহার করা হলে, এই কোডটি Google-এ foo@example.com ইমেলের মাধ্যমে একজন ব্যবহারকারীকে সফলভাবে প্রমাণীকরণ করবে। সাব ফিল্ডটিকে একটি প্রাথমিক কী হিসাবে ভাবুন, যা যেকোনো স্ট্রিং-এ পরিবর্তন করা যেতে পারে, বিভিন্ন ব্যবহারকারীর সাইন ইন করার উপহাস করা যায়। আপনি firebase.auth.GoogleAuthProvider এর সাথে প্রতিস্থাপন করতে পারেন, উদাহরণস্বরূপ, new firebase.auth.OAuthProvider('yahoo.com') বা অন্য কোন প্রদানকারী আইডি যা আপনি উপহাস করতে চান।

এমুলেটেড কাস্টম টোকেন প্রমাণীকরণ

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

প্রমাণীকরণ এমুলেটর কিভাবে উৎপাদন থেকে আলাদা

ফায়ারবেস প্রমাণীকরণ এমুলেটর উত্পাদন পণ্যের অনেক বৈশিষ্ট্য অনুকরণ করে। যাইহোক, যেহেতু যেকোনো ধরনের প্রমাণীকরণ সিস্টেম একাধিক স্তরে (ডিভাইস, 3য় পক্ষ প্রদানকারী, ফায়ারবেস, ইত্যাদি) নিরাপত্তার উপর অনেক বেশি নির্ভর করে, তাই এমুলেটরের পক্ষে সমস্ত প্রবাহকে সঠিকভাবে পুনরায় তৈরি করা কঠিন।

ক্লাউড আইএএম

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

যেহেতু মোবাইল প্ল্যাটফর্মে, ইমেল লিঙ্ক সাইন-ইন Firebase ডায়নামিক লিঙ্কের উপর নির্ভর করে, তাই এই ধরনের সমস্ত লিঙ্ক (মোবাইল) ওয়েব প্ল্যাটফর্মে খোলা হবে।

তৃতীয় পক্ষের সাইন-ইন

তৃতীয় পক্ষের সাইন-ইন প্রবাহের জন্য, Firebase প্রমাণীকরণ Twitter এবং Github-এর মতো তৃতীয় পক্ষের প্রদানকারীদের থেকে নিরাপদ শংসাপত্রের উপর নির্ভর করে।

Google এবং Apple-এর মতো OpenID Connect প্রদানকারীদের থেকে আসল প্রমাণপত্র প্রমাণীকরণ এমুলেটর দ্বারা গৃহীত হয়। নন-ওপেনআইডি কানেক্ট প্রদানকারীর শংসাপত্র সমর্থিত নয়।

ইমেল/এসএমএস সাইন-ইন

প্রোডাকশন অ্যাপ্লিকেশানগুলিতে, ইমেল এবং এসএমএস সাইন-ইন প্রবাহের সাথে একটি অ্যাসিঙ্ক্রোনাস অপারেশন জড়িত যেখানে ব্যবহারকারী একটি প্রাপ্ত বার্তা পরীক্ষা করে এবং একটি সাইন-ইন ইন্টারফেসে একটি লগইন কোড প্রবেশ করে৷ প্রমাণীকরণ এমুলেটর কোনো ইমেল বা এসএমএস বার্তা পাঠায় না, তবে উপরে বর্ণিত হিসাবে, এটি লগইন কোড তৈরি করে এবং পরীক্ষার জন্য ব্যবহার করার জন্য টার্মিনালে আউটপুট করে।

এমুলেটর ফায়ারবেস কনসোল ব্যবহার করে স্থির লগইন কোড সহ পরীক্ষার ফোন নম্বরগুলি সংজ্ঞায়িত করার ক্ষমতা সমর্থন করে না।

কাস্টম টোকেন প্রমাণীকরণ

প্রমাণীকরণ এমুলেটর কাস্টম টোকেনগুলির স্বাক্ষর বা মেয়াদ শেষ হওয়ার বৈধতা দেয় না। এটি আপনাকে হাতে তৈরি টোকেন ব্যবহার করতে এবং প্রোটোটাইপিং এবং পরীক্ষার পরিস্থিতিতে অনির্দিষ্টকালের জন্য টোকেনগুলি পুনরায় ব্যবহার করতে দেয়।

হার সীমিত / বিরোধী অপব্যবহার

প্রমাণীকরণ এমুলেটর উত্পাদন হার সীমিত বা অপব্যবহার বিরোধী বৈশিষ্ট্য প্রতিলিপি করে না।

ব্লকিং ফাংশন

প্রোডাকশনে, beforeCreate এবং beforeSignIn উভয় ইভেন্ট ট্রিগার হওয়ার পরে ব্যবহারকারীদের একবার স্টোরেজে লেখা হয়। যাইহোক, প্রযুক্তিগত সীমাবদ্ধতার কারণে, প্রমাণীকরণ এমুলেটর দুইবার সঞ্চয় করতে লেখে, একবার ব্যবহারকারী তৈরির পরে এবং অন্যটি সাইন-ইন করার পরে। এর মানে হল যে নতুন ব্যবহারকারীদের জন্য, আপনি প্রমাণীকরণ এমুলেটরে beforeSignIngetAuth().getUser() সফলভাবে কল করতে পারেন, কিন্তু উৎপাদনে এটি করার সময় আপনি একটি ত্রুটির সম্মুখীন হবেন।

এরপর কী?