Google Identity Toolkit থেকে Firebase যাচাইকরণে মাইগ্রেট করা

Google Identity Toolkit-এর নতুন ভার্সন Firebase Authentication হিসেবে রিলিজ করা হয়েছে। এখন থেকে, Identity Toolkit-এ ফিচার সংক্রান্ত কাজ বন্ধ করা হবে এবং Firebase Authentication-এ সব নতুন ফিচার ডেভেলপ করা হবে। আমরা Identity Toolkit ডেভেলপারদের যত তাড়াতাড়ি সম্ভব Firebase Authentication-এ চলে যেতে উৎসাহিত করি; তবে, Identity Toolkit কাজ করা চালিয়ে যাবে এবং আরও ঘোষণা ছাড়া বন্ধ করা হবে না।

নতুন বৈশিষ্ট্যাদি

Firebase Authentication-এ Google Identity Toolkit-এর তুলনায় কিছু উল্লেখযোগ্য ফিচার উন্নত করা হয়েছে:

  • Firebase-এর সব কিছুতে অ্যাক্সেস

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

  • আপডেট করা UI

    Google-এর লেটেস্ট UX রিসার্চের উপর ভিত্তি করে আমরা UI ফ্লো সম্পূর্ণভাবে নতুন করে তৈরি করেছি। এর মধ্যে পাসওয়ার্ড ফিরিয়ে আনা, অ্যাকাউন্ট লিঙ্ক করা, নতুন/আগে থেকে থাকা অ্যাকাউন্ট ডিসঅ্যাম্বিগুয়েশন ফ্লো অন্তর্ভুক্ত থাকে, যেগুলি কোড ও ডিবাগ করতে প্রায়ই অনেক সময় লাগে। এটি Android-এ পাসওয়ার্ডের জন্য Smart Lock ইন্টিগ্রেট করে, যা অংশগ্রহণকারী অ্যাপ-এর জন্য সাইন-ইন ও সাইন-আপ কনভার্সন উল্লেখযোগ্যভাবে উন্নত করেছে। এছাড়াও, আপনার অ্যাপ্লিকেশনের সাথে ম্যাচ করার জন্য এটি সহজে থিম পরিবর্তন করার সুবিধা দেয় এবং সর্বাধিক কাস্টমাইজ করার জন্য, Android এবং iOS ভার্সন ওপেন সোর্স করা হয়েছে।

  • সহজ সার্ভার সেট-আপ

    আমরা ডেভেলপারদের জন্য Firebase Authentication ব্যবহার করা আরও সহজ করে তুলেছি। Identity Toolkit-এর ক্ষেত্রে আমরা দেখেছি যে অনেক ডেভেলপার ইমেল অ্যাকাউন্ট ফিরিয়ে আনার ফ্লো প্রয়োগ না করার সিদ্ধান্ত নিয়েছেন, যার ফলে তাদের ব্যবহারকারীরা পাসওয়ার্ড ভুলে গেলে অ্যাকাউন্ট ফিরিয়ে আনা অসম্ভব হয়ে পড়ে। Firebase Authentication ব্যবহারকারীকে ইমেল যাচাইকরণ, পাসওয়ার্ড রিসেট করা এবং পাসওয়ার্ড পরিবর্তন করার মেসেজ পাঠাতে পারে এবং আপনার ব্যবহারকারীদের জন্য টেক্সট সহজেই কাস্টমাইজ করা যেতে পারে। এছাড়াও, রিডাইরেক্ট হোস্ট করা এবং পাসওয়ার্ড পরিবর্তন করার অপারেশন সম্পূর্ণ করার জন্য আপনাকে আর UI উইজেট হোস্ট করতে হবে না।

  • নতুন অ্যাডমিন কনসোল

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

  • নতুন SDK

    Identity Toolkit-এর সব সার্ভার API এখন আমাদের প্রতিটি ক্লায়েন্ট লাইব্রেরির (Android, iOS, ওয়েব) সাথে নেটিভভাবে উপলভ্য। ডেভেলপাররা পুরনো ও নতুন ব্যবহারকারীদের সাইন-ইন ও সাইন-আপ করাতে, ব্যবহারকারীর প্রপার্টি অ্যাক্সেস করতে, অ্যাকাউন্ট লিঙ্ক, আপডেট ও মুছে ফেলতে, পাসওয়ার্ড রিসেট করতে এবং আরও অনেক কিছু করতে পারবেন, যার জন্য কোনও নির্দিষ্ট UI-এর সাথে যুক্ত থাকতে হবে না। আপনি চাইলে, এই API-এর উপরে নিজের সম্পূর্ণ সাইন-ইন ফ্লো ও অভিজ্ঞতা ম্যানুয়ালি তৈরি করতে পারবেন।

  • মোবাইল অ্যাপের জন্য সেশন ম্যানেজমেন্ট

    Identity Toolkit-এর মাধ্যমে, অ্যাপগুলি Identity Toolkit থেকে প্রাথমিক যাচাইকরণ ইভেন্টের উপর ভিত্তি করে তাদের নিজস্ব সেশন স্টেট তৈরি করেছে। Firebase Auth একটি ব্যাকএন্ড পরিষেবা ব্যবহার করে যা যাচাইকরণ ইভেন্ট থেকে তৈরি করা রিফ্রেশ টোকেন নেয় এবং Android, iOS ও JavaScript-এর জন্য এক ঘণ্টা দীর্ঘ অ্যাক্সেস টোকেনের সাথে এটি এক্সচেঞ্জ করে। কোনও ব্যবহারকারী তার পাসওয়ার্ড পরিবর্তন করলে, রিফ্রেশ টোকেন আর নতুন অ্যাক্সেস টোকেন তৈরি করতে পারবে না, এর ফলে ব্যবহারকারী সেই ডিভাইসে আবার যাচাই না করা পর্যন্ত অ্যাক্সেস বন্ধ হয়ে যাবে।

  • পরিচয় গোপন করা এবং GitHub যাচাইকরণ

    Firebase যাচাইকরণ দুই ধরনের নতুন যাচাইকরণ সমর্থন করে: GitHub এবং বেনামী। ব্যবহারকারীকে কোনও সাইন-ইন বা সাইন-আপ প্রসেসের মধ্যে দিয়ে না গিয়েই একটি অনন্য ব্যবহারকারীর আইডি তৈরি করতে বেনামী সাইন-ইন ব্যবহার করা যেতে পারে। একজন বেনামী ব্যবহারকারীর সাথে, আপনি এখন যাচাইকৃত API কল করতে পারেন, যেমন আপনি একজন নিয়মিত ব্যবহারকারীর সাথে করেন। ব্যবহারকারী কোনও অ্যাকাউন্টের জন্য সাইন-আপ করার সিদ্ধান্ত নিলে, সব অ্যাক্টিভিটি একই ব্যবহারকারীর আইডিতে সেভ করা হয়। সার্ভার সাইড শপিং কার্ট বা এমন কোনও অ্যাপ্লিকেশনের মতো পরিস্থিতির জন্য এটি দারুণ, যেখানে আপনি ব্যবহারকারীকে সাইন-আপ ফ্লোতে পাঠানোর আগে তার সাথে এনগেজ হতে চান।

ফিচারের পার্থক্য

Identity Toolkit-এর কিছু ফিচার বর্তমানে Firebase Authentication-এ উপলভ্য নেই, অন্যান্য ফিচার নতুন করে ডিজাইন করা হয়েছে এবং সেগুলি ভিন্নভাবে কাজ করে। এইসব ফিচার আপনার অ্যাপের জন্য গুরুত্বপূর্ণ হলে, আপনি হয়ত এখনই মাইগ্রেট করতে চাইবেন না। অনেক ক্ষেত্রে, এইসব ফিচার আপনার অ্যাপের জন্য গুরুত্বপূর্ণ নাও হতে পারে অথবা সহজ ফলব্যাক থাকতে পারে যা আপনাকে মাইগ্রেশন চালিয়ে যেতে সাহায্য করবে।

সার্ভার সাইডের পার্থক্য

অন্তর্নিহিত REST API, অ্যাকাউন্ট যাচাইকরণ লজিক ও প্রাথমিক ব্যবহারকারীর ডেটাবেস সহ মূল Identity Toolkit পরিষেবায় সামান্য আপডেট করা হয়েছে। তবে, কিছু ফিচার এবং আপনার পরিষেবায় Firebase Authentication ইন্টিগ্রেট করার পদ্ধতি পরিবর্তিত হয়েছে।

  • পরিচয় প্রদানকারী

    Paypal এবং AOL কাজ করে না। এইসব IDP-এর অ্যাকাউন্ট আছে এমন ব্যবহারকারীরা এখনও পাসওয়ার্ড ফিরিয়ে আনার ফ্লো ব্যবহার করে আপনার অ্যাপ্লিকেশনে সাইন-ইন করতে এবং তাদের অ্যাকাউন্টের জন্য পাসওয়ার্ড সেট-আপ করতে পারবেন।

  • সার্ভার লাইব্রেরি

    বর্তমানে, Java, Node.js, Python, Go এবং C#-এর জন্য Firebase অ্যাডমিন SDK উপলভ্য।

  • অ্যাকাউন্ট ম্যানেজমেন্ট সংক্রান্ত ইমেল

    পাসওয়ার্ড রিসেট, ইমেল যাচাইকরণ এবং ইমেল পরিবর্তন সংক্রান্ত মেসেজ Firebase বা ডেভেলপারের নিজস্ব মেল সার্ভার থেকে সম্পন্ন করা যেতে পারে। বর্তমানে, Firebase ইমেল টেমপ্লেট শুধুমাত্র সীমিত কাস্টমাইজেশন অফার করে।

  • ইমেল আইডি পরিবর্তন করার কনফার্মেশন

    Identity Toolkit-এ, কোনও ব্যবহারকারী তার ইমেল আইডি পরিবর্তন করার সিদ্ধান্ত নিলে, এটি নতুন আইডিতে একটি ইমেল পাঠায় যাতে ইমেল আইডি পরিবর্তন করার ফ্লো চালিয়ে যাওয়ার জন্য একটি লিঙ্ক থাকে।

    Firebase, পুরনো ইমেল আইডিতে পরিবর্তন বাতিল করার লিঙ্ক সহ একটি প্রত্যাহার ইমেল পাঠিয়ে ইমেল আইডি পরিবর্তন কনফার্ম করে।

  • IDP রোল-আউট

    Identity Toolkit-এর কাছে আপনার সাইন-ইন সিস্টেমে ধীরে ধীরে পরিচয় প্রদানকারী যোগ করার ক্ষমতা ছিল, যাতে আপনি আপনার সহায়তা অনুরোধের উপর প্রভাব নিয়ে পরীক্ষা করতে পারেন। Firebase Authentication থেকে এই ফিচার সরিয়ে দেওয়া হয়েছে।

ক্লায়েন্ট সাইডের পার্থক্য

Firebase-এ, Google Identity Toolkit-এর মাধ্যমে প্রদান করা ফিচার দুটি কম্পোনেন্টে বিভক্ত:

  • Firebase Authentication SDK

    Firebase Authentication-এ, Identity Toolkit-এর REST API-এর মাধ্যমে প্রদান করা কার্যকারিতা Android, iOS এবং JavaScript-এর জন্য উপলভ্য ক্লায়েন্ট SDK-তে প্যাকেজ করা হয়েছে। আপনি SDK ব্যবহার করে ব্যবহারকারীদের সাইন-ইন ও সাইন-আপ করাতে পারবেন; ব্যবহারকারীর প্রোফাইল তথ্য অ্যাক্সেস করতে পারবেন; অ্যাকাউন্ট লিঙ্ক, আপডেট ও মুছে দিতে পারবেন; এবং REST কলের মাধ্যমে ব্যাক-এন্ড পরিষেবার সাথে যোগাযোগ করার পরিবর্তে ক্লায়েন্ট SDK ব্যবহার করে পাসওয়ার্ড রিসেট করতে পারবেন।

  • FirebaseUI Auth

    সাইন-ইন, সাইন-আপ, পাসওয়ার্ড ফিরিয়ে আনা এবং অ্যাকাউন্ট লিঙ্ক করার মতো কাজ ম্যানেজ করে এমন সব UI ফ্লো Firebase Authentication SDK ব্যবহার করে আবার তৈরি করা হয়েছে। এগুলি iOS এবং Android-এর জন্য ওপেন সোর্স SDK হিসেবে উপলভ্য, যাতে আপনি Identity Toolkit-এর মাধ্যমে সম্ভব নয় এমন উপায়ে ফ্লো সম্পূর্ণরূপে কাস্টমাইজ করতে পারেন।

অন্যান্য পার্থক্যের মধ্যে রয়েছে:

  • সেশন ও মাইগ্রেশন

    Identity Toolkit এবং Firebase Authentication-এ সেশন আলাদাভাবে ম্যানেজ করা হয় বলে, SDK আপগ্রেড করার পরে আপনার ব্যবহারকারীর বর্তমান সেশন বন্ধ হয়ে যাবে এবং আপনার ব্যবহারকারীকে আবার সাইন-ইন করতে হবে।

শুরু করার আগে

Identity Toolkit থেকে Firebase Authentication-এ মাইগ্রেট করার আগে, আপনাকে অবশ্যই

  1. Firebase কনসোল খুলুন, Google প্রোজেক্ট ইমপোর্ট করুন বিকল্পে ক্লিক করুন এবং আপনার Identity Toolkit প্রোজেক্ট বেছে নিন।

  2. IAM ও অ্যাডমিন পৃষ্ঠা খুলতে > অনুমতি বিকল্পে ক্লিক করুন।

  3. পরিষেবার অ্যাকাউন্ট-এর পৃষ্ঠা খুলুন। এখানে আপনি Identity Toolkit-এর জন্য আগে কনফিগার করা পরিষেবা অ্যাকাউন্ট দেখতে পাবেন।

  4. পরিষেবা অ্যাকাউন্টের পাশে, > কী তৈরি করুন বিকল্পে ক্লিক করুন। তারপর, ব্যক্তিগত কী তৈরি করুন ডায়ালগে, কী-এর ধরন JSON হিসেবে সেট করে তৈরি করুন বিকল্পে ক্লিক করুন। আপনার পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল সহ JSON ফাইল আপনার জন্য ডাউনলোড করা হয়েছে। পরবর্তী ধাপে SDK শুরু করার জন্য আপনার এটি প্রয়োজন হবে।

  5. Firebase কনসোলে ফিরে যান। Auth বিভাগে, ইমেল টেমপ্লেট পৃষ্ঠা খুলুন। এই পৃষ্ঠায়, আপনার অ্যাপের ইমেল টেমপ্লেট কাস্টমাইজ করুন।

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

  6. ঐচ্ছিক: আপনার সার্ভারে Firebase পরিষেবা অ্যাক্সেস করতে হলে, Firebase SDK ইনস্টল করুন।

    1. আপনি npm-এর মাধ্যমে Firebase Node.js মডিউল ইনস্টল করতে পারবেন:

      $ npm init
      $ npm install --save firebase-admin
      
    2. আপনার কোডে, আপনি এগুলি ব্যবহার করে Firebase অ্যাক্সেস করতে পারবেন:

      var admin = require('firebase-admin');
      var app = admin.initializeApp({
        credential: admin.credential.cert('path/to/serviceAccountCredentials.json')
      });
      

এরপর, আপনার অ্যাপের প্ল্যাটফর্মের জন্য মাইগ্রেশন ধাপ সম্পূর্ণ করুন: Android, iOS, ওয়েব।

সার্ভার ও জাভাস্ক্রিপ্ট

উল্লেখযোগ্য পরিবর্তন

Identity Toolkit থেকে Firebase-এর ওয়েব ইমপ্লিমেন্টেশনে আরও অনেক পার্থক্য আছে।

  • ওয়েব সেশন ম্যানেজমেন্ট

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

    Firebase ক্লায়েন্ট SDK এখন Firebase আইডি টোকেন ম্যানেজ করে এবং সেশন ফ্রেশ রাখতে Firebase Authentication-এর ব্যাকএন্ডের সাথে কাজ করে। অ্যাকাউন্টে গুরুত্বপূর্ণ পরিবর্তন (যেমন ব্যবহারকারীর পাসওয়ার্ড পরিবর্তন) হলে ব্যাকএন্ড সেশনের মেয়াদ শেষ করে দেয়। Firebase আইডি টোকেন ওয়েব ক্লায়েন্টে অটোমেটিক কুকি হিসেবে সেট হয় না এবং এর লাইফটাইম মাত্র এক ঘণ্টা। আপনি যদি শুধুমাত্র এক ঘণ্টার সেশন না চান, তাহলে আপনার সব পৃষ্ঠার অনুরোধ যাচাই করার জন্য কুকি হিসেবে Firebase ID টোকেন ব্যবহার করা উপযুক্ত নয়। পরিবর্তে, ব্যবহারকারী লগ-ইন করলে আপনাকে লিসেনার সেট-আপ করতে, Firebase ID টোকেন পেতে, টোকেন যাচাই করতে এবং আপনার ফ্রেমওয়ার্কের কুকি ম্যানেজমেন্ট সিস্টেমের মাধ্যমে আপনার নিজস্ব কুকি তৈরি করতে হবে।

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

  • ওয়েব সাইন-ইন ফ্লো

    আগে, ব্যবহারকারী কোন আইডেন্টিফায়ার ব্যবহার করতে চান তা জানার জন্য সাইন-ইন করার সময় ব্যবহারকারীকে accountchooser.com-এ রিডাইরেক্ট করা হত। Firebase Auth UI-এর ফ্লো এখন সাইন-ইন পদ্ধতির তালিকা দিয়ে শুরু হয়, যার মধ্যে ইমেল বিকল্পও রয়েছে যা ওয়েবের জন্য accountchooser.com-এ যায় এবং Android-এ hintRequest API ব্যবহার করে। এছাড়াও, Firebase UI-তে আর ইমেল আইডি প্রয়োজন হয় না। এটি বেনামী ব্যবহারকারী, কাস্টম অথ ব্যবহারকারী বা এমন পরিষেবা প্রদানকারীর ব্যবহারকারীদের সহায়তা করা সহজ করে তুলবে যেখানে ইমেল আইডির প্রয়োজন হয় না।

  • অ্যাকাউন্ট ম্যানেজমেন্ট উইজেট

    এই উইজেট ব্যবহারকারীদের ইমেল আইডি পরিবর্তন, পাসওয়ার্ড পরিবর্তন অথবা পরিচয় প্রদানকারীর থেকে তাদের অ্যাকাউন্ট আনলিঙ্ক করার জন্য UI প্রদান করে। বর্তমানে এটি তৈরি করা হচ্ছে।

  • সাইন-ইন বোতাম/উইজেট

    সাইন-ইন বোতাম এবং ব্যবহারকারীর কার্ডের মতো উইজেট আর প্রদান করা হয় না। Firebase Authentication API ব্যবহার করে এগুলি খুব সহজেই তৈরি করা যায়।

  • signOutUrl নেই

    আপনাকে firebase.auth.signOut()-এ কল করতে হবে এবং কলব্যাক ম্যানেজ করতে হবে।

  • oobActionUrl নেই

    ইমেল পাঠানোর বিষয়টি এখন Firebase ম্যানেজ করে এবং Firebase কনসোলে কনফিগার করা হয়।

  • CSS কাস্টমাইজেশন

    FirebaseUI মেটেরিয়াল ডিজাইন লাইট স্টাইলিং ব্যবহার করে, যা ডায়নামিকভাবে মেটেরিয়াল ডিজাইন অ্যানিমেশন যোগ করে।

ধাপ ১: সার্ভার কোড পরিবর্তন করুন

  1. আপনার সার্ভার যদি ওয়েব ব্যবহারকারীর সেশন ম্যানেজ করার জন্য আইডেন্টিটি টুলকিট টোকেনের (দুই সপ্তাহের জন্য বৈধ) উপর নির্ভর করে, তাহলে আপনাকে সার্ভারটি কনভার্ট করতে হবে যাতে এটি নিজস্ব সেশন কুকি ব্যবহার করতে পারে।

    1. Firebase ID টোকেন যাচাই করা এবং ব্যবহারকারীর জন্য সেশন কুকি সেট করার জন্য একটি এন্ডপয়েন্ট ইমপ্লিমেন্ট করুন। ক্লায়েন্ট অ্যাপ এই এন্ডপয়েন্টে Firebase ID টোকেন পাঠায়।
    2. ইনকামিং অনুরোধে আপনার নিজের সেশন কুকি থাকলে, আপনি ব্যবহারকারীকে যাচাই করা হয়েছে বলে বিবেচনা করতে পারেন। অন্যথায়, অনুরোধটি যাচাই করা হয়নি হিসেবে বিবেচনা করুন।
    3. আপনি যদি না চান যে আপনার কোনও ব্যবহারকারী তাদের বর্তমান লগ-ইন সেশন হারান, তাহলে আপনাকে সমস্ত আইডেন্টিটি টুলকিট টোকেনের মেয়াদ শেষ হওয়ার জন্য দুই সপ্তাহ অপেক্ষা করতে হবে, অথবা আপনার ওয়েব অ্যাপ্লিকেশনের জন্য ডুয়াল টোকেন যাচাইকরণও করতে হবে যেমন নিচে ৩ নম্বর ধাপে বর্ণনা করা হয়েছে।
  2. এরপর, Firebase টোকেন Identity Toolkit টোকেনের থেকে আলাদা হওয়ায়, আপনাকে টোকেন যাচাইকরণের লজিক আপডেট করতে হবে। আপনার সার্ভারে Firebase Server SDK ইনস্টল করুন; অথবা, আপনি যদি এমন কোনও ভাষা ব্যবহার করেন যা Firebase Server SDK-তে কাজ করে না, তাহলে আপনার এনভায়রনমেন্টের জন্য একটি JWT টোকেন যাচাইকরণ লাইব্রেরি ডাউনলোড করুন এবং সঠিকভাবে টোকেন যাচাই করুন।

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

Firebase Web API রেফারেন্স দেখুন।

ধাপ ২: আপনার HTML আপডেট করুন

  1. আপনার অ্যাপে Firebase ইনিশিয়ালাইজেশন কোড যোগ করুন:

    1. Firebase কনসোলে আপনার প্রোজেক্ট খুলুন।
    2. ওভারভিউ পৃষ্ঠায়, অ্যাপ যোগ করুন বিকল্পে ক্লিক করুন, তারপর আপনার ওয়েব অ্যাপে Firebase যোগ করুন বিকল্পে ক্লিক করুন। Firebase শুরু করে এমন একটি কোড স্নিপেট দেখানো হয়।
    3. আপনার ওয়েব পেজে ইনিশিয়ালাইজেশন স্নিপেট কপি ও পেস্ট করুন।
  2. আপনার অ্যাপে FirebaseUI Auth যোগ করুন:

    <script src="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.js"></script>
    <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.css" />
    <!-- *******************************************************************************************
       * TODO(DEVELOPER): Paste the initialization snippet from:
       * Firebase Console > Overview > Add Firebase to your web app. *
       ***************************************************************************************** -->
    <script type="text/javascript">
      // FirebaseUI config.
      var uiConfig = {
        'signInSuccessUrl': '<url-to-redirect-to-on-success>',
        'signInOptions': [
          // Leave the lines as is for the providers you want to offer your users.
          firebase.auth.GoogleAuthProvider.PROVIDER_ID,
          firebase.auth.FacebookAuthProvider.PROVIDER_ID,
          firebase.auth.TwitterAuthProvider.PROVIDER_ID,
          firebase.auth.GithubAuthProvider.PROVIDER_ID,
          firebase.auth.EmailAuthProvider.PROVIDER_ID
        ],
        // Terms of service url.
        'tosUrl': '<your-tos-url>',
      };
    
      // Initialize the FirebaseUI Widget using Firebase.
      var ui = new firebaseui.auth.AuthUI(firebase.auth());
      // The start method will wait until the DOM is loaded.
      ui.start('#firebaseui-auth-container', uiConfig);
    </script>
    
  3. আপনার অ্যাপ থেকে Identity Toolkit SDK সরিয়ে দিন।

  4. সেশন ম্যানেজমেন্টের জন্য আপনি Identity Toolkit আইডি টোকেনের উপর নির্ভর করলে, আপনাকে ক্লায়েন্ট সাইডে নিম্নলিখিত পরিবর্তনগুলি করতে হবে:

    1. Firebase-এ সফলভাবে সাইন-ইন করার পরে, firebase.auth().currentUser.getToken()-এ কল করে Firebase ID টোকেন পান।

    2. ব্যাকএন্ড সার্ভারে Firebase আইডি টোকেন পাঠান, এটি যাচাই করুন এবং আপনার নিজস্ব সেশন কুকি ইস্যু করুন।

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

      আপনার ফ্রেমওয়ার্ক CSRF সুরক্ষা প্রদান না করলে, আক্রমণ প্রতিরোধ করার একটি উপায় হল getToken()-এর মাধ্যমে সাইন-ইন করা ব্যবহারকারীর জন্য Firebase ID টোকেন পাওয়া এবং প্রতিটি অনুরোধের সাথে টোকেন অন্তর্ভুক্ত করা (ডিফল্ট হিসেবে সেশন কুকিও পাঠানো হবে)। তারপর আপনি সেশন কুকি চেক করার পাশাপাশি Firebase সার্ভার SDK ব্যবহার করে সেই টোকেন যাচাই করবেন, যা আপনার ব্যাকএন্ড ফ্রেমওয়ার্ক সম্পূর্ণ করেছে। এর ফলে CSRF অ্যাটাক সফল হওয়া কঠিন হয়ে যাবে, কারণ Firebase ID টোকেন শুধুমাত্র ওয়েব স্টোরেজ ব্যবহার করে স্টোর করা হয় এবং কুকিতে কখনই স্টোর করা হয় না।

    3. Identity Toolkit টোকেন দুই সপ্তাহের জন্য বৈধ। আপনি হয়ত এমন টোকেন ইস্যু করা চালিয়ে যেতে চাইবেন যা দুই সপ্তাহ পর্যন্ত কাজ করে অথবা আপনার অ্যাপের নিরাপত্তা সংক্রান্ত প্রয়োজনীয়তার উপর ভিত্তি করে আপনি হয়ত এটি আরও বেশি বা কম সময়ের জন্য করতে চাইবেন। কোনও ব্যবহারকারী সাইন-আউট করলে, সেশন কুকি মুছে দিন।

ধাপ ৩: IDP রিডাইরেক্ট URL আপডেট করা

  1. Firebase কনসোলে, যাচাইকরণ বিভাগ খুলুন এবং সাইন-ইন পদ্ধতি ট্যাবে ক্লিক করুন।

  2. আপনার সমর্থন করা প্রতিটি ফেডারেটেড সাইন-ইন প্রদানকারীর জন্য, নিম্নলিখিত কাজগুলি করুন:

    1. সাইন-ইন প্রদানকারীর নামে ক্লিক করুন।
    2. OAuth রিডাইরেক্ট URI কপি করুন।
    3. সাইন-ইন প্রদানকারীর ডেভেলপার কনসোলে, OAuth রিডাইরেক্ট URI আপডেট করুন।

Android

ধাপ ১: আপনার অ্যাপে Firebase যোগ করুন

  1. Firebase কনসোল খুলুন এবং আপনার Identity Toolkit প্রোজেক্ট বেছে নিন, যেটি আপনি আগেই ইমপোর্ট করেছেন।

  2. ওভারভিউ পৃষ্ঠায়, অ্যাপ যোগ করুন বিকল্পে ক্লিক করুন এবং তারপরে আপনার Android অ্যাপে Firebase যোগ করুন বিকল্পে ক্লিক করুন। Firebase যোগ করুন ডায়ালগে, আপনার অ্যাপের প্যাকেজের নাম ও সাইনিং সার্টিফিকেট ফিঙ্গারপ্রিন্ট প্রদান করুন এবং অ্যাপ যোগ করুন বিকল্পে ক্লিক করুন। এরপরে google-services.json কনফিগারেশন ফাইল আপনার কম্পিউটারে ডাউনলোড হয়ে যাবে।

  3. আপনার Android অ্যাপ মডিউল রুট ডিরেক্টরিতে কনফিগারেশন ফাইল কপি করুন। এই কনফিগারেশন ফাইলে প্রোজেক্ট এবং Google OAuth ক্লায়েন্ট সংক্রান্ত তথ্য থাকে।

  4. আপনার প্রোজেক্ট-লেভেল build.gradle ফাইলে (<var>your-project</var>/build.gradle), defaultConfig বিভাগে আপনার অ্যাপের প্যাকেজের নাম উল্লেখ করুন:

    defaultConfig {
       …..
      applicationId "com.your-app"
    }
    
  5. এছাড়াও, আপনার প্রোজেক্ট-লেভেল build.gradle ফাইলে, google-services প্লাগ-ইন অন্তর্ভুক্ত করতে একটি ডিপেন্ডেন্সি যোগ করুন:

    buildscript {
     dependencies {
       // Add this line
       classpath 'com.google.gms:google-services:3.0.0'
     }
    }
    
  6. আপনার অ্যাপের অ্যাপ-লেভেল build.gradle ফাইলে (<var>my-project</var>/<var>app-module</var>/build.gradle), google-services প্লাগ-ইন চালু করতে নিচের লাইনটি যোগ করুন:

    // Add to the bottom of the file
    apply plugin: 'com.google.gms.google-services'
    

    আপনার অ্যাপ্লিকেশন যাতে Firebase ব্যবহার করতে পারে সেই জন্য google-services প্লাগ-ইন google-services.json ফাইল ব্যবহার করে কনফিগার করে।

  7. এছাড়াও, অ্যাপ-লেভেল build.gradle ফাইলে, Firebase Authentication ডিপেন্ডেন্সি যোগ করুন:

    compile 'com.google.firebase:firebase-auth:25.0.0'
    compile 'com.google.android.gms:play-services-auth:22.0.0'
    

ধাপ ২: Identity Toolkit SDK সরিয়ে দিন

  1. AndroidManifest.xml ফাইল থেকে Identity Toolkit কনফিগারেশন সরিয়ে দিন। এই তথ্য google-service.json ফাইলে অন্তর্ভুক্ত থাকে এবং google-services প্লাগ-ইন দ্বারা লোড করা হয়।
  2. আপনার অ্যাপ থেকে Identity Toolkit SDK সরিয়ে দিন।

ধাপ ৩: আপনার অ্যাপে FirebaseUI যোগ করুন

  1. আপনার অ্যাপে FirebaseUI Auth যোগ করুন।

  2. আপনার অ্যাপে, FirebaseUI-তে কল করার মাধ্যমে Identity Toolkit SDK-তে কল করার সুবিধা পরিবর্তন করুন।

iOS

ধাপ ১: আপনার অ্যাপে Firebase যোগ করুন

  1. নিম্নলিখিত কমান্ড রান করে আপনার অ্যাপে Firebase SDK যোগ করুন:

    $ cd your-project directory
    $ pod init
    $ pod 'Firebase'
    
  2. Firebase কনসোল খুলুন এবং আপনার Identity Toolkit প্রোজেক্ট বেছে নিন, যেটি আপনি আগেই ইমপোর্ট করেছেন।

  3. ওভারভিউ পৃষ্ঠায়, অ্যাপ যোগ করুন বিকল্পে ক্লিক করুন এবং তারপরে আপনার iOS অ্যাপে Firebase যোগ করুন বিকল্পে ক্লিক করুন। Firebase যোগ করুন ডায়ালগে, আপনার অ্যাপের বান্ডিল আইডি ও App Store আইডি দিন এবং তারপরে অ্যাপ যোগ করুন বিকল্পে ক্লিক করুন। এরপরে GoogleService-Info.plist কনফিগারেশন ফাইল আপনার কম্পিউটারে ডাউনলোড হয়ে যাবে। আপনার প্রোজেক্টে একাধিক বান্ডিল আইডি থাকলে, প্রতিটি বান্ডিল আইডি Firebase কনসোলে কানেক্ট করতে হবে যাতে এটির নিজস্ব GoogleService-Info.plist ফাইল থাকতে পারে।

  4. আপনার Xcode প্রোজেক্টের রুটে কনফিগারেশন ফাইল কপি করুন এবং এটি সব টার্গেটে যোগ করুন।

ধাপ ২: Identity Toolkit SDK সরিয়ে দিন

  1. আপনার অ্যাপের Podfile থেকে GoogleIdentityToolkit সরান।
  2. pod install কমান্ড রান করুন।

ধাপ ৩: আপনার অ্যাপে FirebaseUI যোগ করুন

  1. আপনার অ্যাপে FirebaseUI Auth যোগ করুন।

  2. আপনার অ্যাপে, FirebaseUI-তে কল করার মাধ্যমে Identity Toolkit SDK-তে কল করার সুবিধা পরিবর্তন করুন।