Google Identity Toolkit থেকে Google Cloud-এর Identity Platform-এ মাইগ্রেট করা

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

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

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

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

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

  • যাচাইকরণের নতুন পদ্ধতি

    Identity Platform এন্টারপ্রাইজ ফেডারেশন স্ট্যান্ডার্ডের সাথে কাজ করে, যেমন SAML এবং OIDC, যা আপনাকে SaaS অ্যাপ ও পরিষেবা স্কেল করতে সাহায্য করে। এছাড়াও, Identity Platform GitHub, Microsoft, Yahoo-এর মতো পরিষেবা প্রদানকারীদের জন্য সহায়তা প্রদান করে। আপনি কোনও সাইন-ইন বা সাইন-আপ প্রসেস ছাড়াই অনন্য ব্যবহারকারী আইডি তৈরি করতে অ্যানোনিমাস সাইন-ইন ব্যবহার করতে পারেন; এটি আপনাকে একজন সাধারণ ব্যবহারকারীর মতো যাচাই করা API কল করতে দেয়। ব্যবহারকারী অ্যাকাউন্টে সাইন-আপ করার সিদ্ধান্ত নিলে, একই ইউজার আইডির সাথে সব অ্যাক্টিভিটি সেভ করা হয়। সার্ভার সাইড শপিং কার্ট বা অন্যান্য অ্যাপ্লিকেশনের মতো পরিস্থিতিতে এটি মূল্যবান যেখানে আপনি ব্যবহারকারীকে সাইন-আপ ফ্লোতে পাঠানোর আগে তার সাথে এনগেজ হতে চান।

  • পরিষেবার লেভেল এগ্রিমেন্ট ও ক্লাউড সহায়তার মাধ্যমে আত্মবিশ্বাসের সাথে স্কেল করা

    Identity Platform বিশ্বস্ত Google পরিকাঠামোর উপর ভিত্তি করে তৈরি করা হয়েছে এবং এটি পরিষেবার লেভেল সংক্রান্ত চুক্তি এবং Google Cloud-এর সহায়তা প্রদান করে। এর অর্থ হল, আপনি আত্মবিশ্বাসের সাথে আপনার পরিষেবা স্কেল করতে পারবেন এবং আপনার প্রয়োজনীয় স্থিতিস্থাপকতা, উপলভ্যতা এবং স্কেলেবিলিটি প্রদান করার জন্য Google-এর উপর নির্ভর করতে পারবেন।

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

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

  • আপডেট করা UI

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

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

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

  • নতুন SDK

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

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

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

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

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

সার্ভার সাইডের ক্ষেত্রে

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

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

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

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

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

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

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

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

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

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

  • IDP রোল-আউট

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

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

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

  • ক্লায়েন্ট ও সার্ভার SDK

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

  • UI উইজেট

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

অতিরিক্ত পার্থক্যগুলির মধ্যে এগুলি অন্তর্ভুক্ত:

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

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

শুরু করার আগে

Identity Toolkit থেকে Identity Platform-এ মাইগ্রেট করার আগে, আপনাকে এগুলি অবশ্যই করতে হবে:

  1. Cloud Console খুলুন এবং আপনার Identity Toolkit প্রোজেক্ট বেছে নিন।

  2. Marketplace থেকে, Identity Platform ব্রাউজ করুন এবং 'Identity Platform চালু করুন' বিকল্প বেছে নিন

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

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

  5. Cloud Console-এ ফিরে যান। প্রদানকারী বিভাগে, 'ইমেল/পাসওয়ার্ড' সাইন-ইন পদ্ধতির মধ্যে, ইমেল টেমপ্লেট পৃষ্ঠা খুলুন। তারপরে, আপনি অ্যাপের টেমপ্লেট কাস্টমাইজ করতে পারবেন।

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

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

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

      $ 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-এর থেকে Identity Platform-এর ওয়েব প্রয়োগে আরও অনেক পার্থক্য রয়েছে।

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

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

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

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

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

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

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

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

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

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

  • signOutUrl নেই

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

  • কোনও oobActionUrl নেই

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

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

    UI উইজেট Material Design Lite স্টাইলিং ব্যবহার করে, যা ডায়নামিক পদ্ধতিতে Material Design অ্যানিমেশন যোগ করে।

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

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

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

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

ওয়েব API রেফারেন্স দেখুন।

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

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

    1. আপনার প্রোজেক্টটি Cloud Console-এ খুলুন।
    2. প্রদানকারী পৃষ্ঠায়, অ্যাপ্লিকেশন সেট-আপের বিবরণ বিকল্পে ক্লিক করুন। Identity Platform-কে ইনিশিয়ালাইজ করে এমন একটি কোড স্নিপেট দেখানো হয়।
    3. আপনার ওয়েবপেজে ইনিশিয়ালাইজেশন স্নিপেট কপি ও পেস্ট করুন।
  2. আপনার অ্যাপে যাচাইকরণ উইজেট যোগ করুন:

    <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 ID টোকেনের উপর নির্ভর করলে, আপনাকে ক্লায়েন্ট সাইডে নিম্নলিখিত পরিবর্তনগুলি করতে হবে:

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

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

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

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

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

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

  1. Cloud Console-এ, প্রোভাইডার বিভাগ খুলুন।

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

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

Android

ধাপ ১: Firebase-এর মাধ্যমে আপনার অ্যাপে Identity Platform যোগ করুন

  1. Cloud Console খুলুন এবং আপনার 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 প্লাগ-ইন চালু করতে Android Gradle প্লাগ-ইনের পরে নিম্নলিখিত লাইনটি যোগ করুন:

    apply plugin: 'com.android.application'
    // Add this line
    apply plugin: 'com.google.gms.google-services'
    

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

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

    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. আপনার অ্যাপে, Identity Toolkit SDK-তে করা কলগুলি FirebaseUI-তে করা কল দিয়ে পরিবর্তন করুন।

iOS

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

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

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

  3. প্রোভাইডার পৃষ্ঠায়, অ্যাপ্লিকেশন সেট-আপের বিবরণ বিকল্পে ক্লিক করুন, iOS ট্যাব বেছে নিন এবং তারপর Firebase-এ শুরু করুন বিকল্পে ক্লিক করুন। Firebase যোগ করুন ডায়ালগে, আপনার অ্যাপের প্যাকেজের নাম ও সাইনিং সার্টিফিকেট ফিঙ্গারপ্রিন্ট দিন এবং অ্যাপ যোগ করুন বিকল্পে ক্লিক করুন। google-services.json কনফিগারেশন ফাইলটি তারপরে আপনার কম্পিউটারে ডাউনলোড করা হবে। 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. আপনার অ্যাপে, Identity Toolkit SDK-তে করা কলগুলি FirebaseUI-তে করা কল দিয়ে পরিবর্তন করুন।