Google Identity Toolkit-এর সর্বশেষ সংস্করণটি Firebase Authentication নামে প্রকাশিত হয়েছে। এখন থেকে, Identity Toolkit-এর ফিচার সংক্রান্ত কাজ স্থগিত করা হবে এবং সমস্ত নতুন ফিচারের উন্নয়ন Firebase Authentication-এর উপর করা হবে। আমরা Identity Toolkit ডেভেলপারদেরকে তাদের অ্যাপ্লিকেশনের জন্য যত তাড়াতাড়ি সম্ভব Firebase Authentication-এ স্থানান্তরিত হতে উৎসাহিত করছি; তবে, Identity Toolkit কাজ করা অব্যাহত রাখবে এবং পরবর্তী কোনো ঘোষণা ছাড়া এটিকে বাতিল করা হবে না।
নতুন বৈশিষ্ট্য
Google Identity Toolkit-এর তুলনায় Firebase Authentication-এ ইতিমধ্যেই কিছু উল্লেখযোগ্য উন্নত বৈশিষ্ট্য রয়েছে:
ফায়ারবেসের সবকিছুর অ্যাক্সেস
ফায়ারবেস একটি মোবাইল প্ল্যাটফর্ম যা আপনাকে দ্রুত উচ্চ-মানের অ্যাপ তৈরি করতে, আপনার ব্যবহারকারীর সংখ্যা বাড়াতে এবং আরও বেশি অর্থ উপার্জন করতে সাহায্য করে। ফায়ারবেস বিভিন্ন পরিপূরক বৈশিষ্ট্য দিয়ে গঠিত যা আপনি আপনার প্রয়োজন অনুসারে মিলিয়ে ব্যবহার করতে পারেন এবং এতে মোবাইল অ্যানালিটিক্স , ক্লাউড মেসেজিং , রিয়েলটাইম ডেটাবেস , ফাইল স্টোরেজ , স্ট্যাটিক হোস্টিং , রিমোট কনফিগারেশন , মোবাইল ক্র্যাশ রিপোর্টিং এবং অ্যান্ড্রয়েড টেস্টিং -এর জন্য পরিকাঠামো অন্তর্ভুক্ত রয়েছে।
আপডেট করা UI
আমরা গুগলের সর্বশেষ ইউএক্স গবেষণার উপর ভিত্তি করে UI ফ্লো সম্পূর্ণরূপে পুনর্নির্মাণ করেছি। এর মধ্যে রয়েছে পাসওয়ার্ড পুনরুদ্ধার, অ্যাকাউন্ট লিঙ্কিং, এবং নতুন/বিদ্যমান অ্যাকাউন্টের অস্পষ্টতা দূর করার ফ্লো, যেগুলো কোড করতে এবং ডিবাগ করতে প্রায়শই অনেক সময় লাগে। এটি অ্যান্ড্রয়েডে পাসওয়ার্ডের জন্য স্মার্ট লক ইন্টিগ্রেট করে, যা অংশগ্রহণকারী অ্যাপগুলোর জন্য সাইন-ইন এবং সাইন-আপ কনভার্সন উল্লেখযোগ্যভাবে উন্নত করেছে। এটি আপনার অ্যাপ্লিকেশনের সাথে মেলানোর জন্য সহজে থিম পরিবর্তনও সমর্থন করে এবং সর্বোচ্চ কাস্টমাইজযোগ্যতার জন্য অ্যান্ড্রয়েড ও আইওএস সংস্করণগুলো ওপেন সোর্স করা হয়েছে।
সরলীকৃত সার্ভার সেটআপ
আমরা ডেভেলপারদের জন্য ফায়ারবেস অথেনটিকেশন ব্যবহার করা আরও সহজ করে দিয়েছি। আইডেন্টিটি টুলকিটের মাধ্যমে আমরা দেখেছি যে, অনেক ডেভেলপার ইমেল রিকভারি ফ্লো প্রয়োগ করতেন না, যার ফলে ব্যবহারকারীরা পাসওয়ার্ড ভুলে গেলে তাদের অ্যাকাউন্ট পুনরুদ্ধার করা অসম্ভব হয়ে পড়ত। ফায়ারবেস অথেনটিকেশন ব্যবহারকারীকে ইমেল ভেরিফিকেশন, পাসওয়ার্ড রিসেট এবং পাসওয়ার্ড পরিবর্তনের বার্তা পাঠাতে পারে এবং এর টেক্সট আপনার ব্যবহারকারীদের জন্য সহজেই কাস্টমাইজ করা যায়। এছাড়াও, রিডাইরেক্ট হোস্ট করা এবং পাসওয়ার্ড পরিবর্তনের কাজ সম্পন্ন করার জন্য আপনাকে আর UI উইজেট হোস্ট করতে হবে না।
নতুন অ্যাডমিন কনসোল
ফায়ারবেসের একটি নতুন ডেভেলপার কনসোল রয়েছে এবং এর অথেনটিকেশন সেকশন আপনাকে আপনার ব্যবহারকারীদের দেখতে, পরিবর্তন করতে এবং মুছে ফেলতে দেয়। এটি আপনার সাইন-ইন এবং সাইন-আপ ফ্লো ডিবাগ করার ক্ষেত্রে দারুণ সহায়ক হতে পারে। এই কনসোলটি আপনাকে অথেনটিকেশন পদ্ধতি কনফিগার করতে এবং ইমেল টেমপ্লেট কাস্টমাইজ করতেও সাহায্য করে।
নতুন SDK
আইডেন্টিটি টুলকিট-এর সমস্ত সার্ভার এপিআই এখন আমাদের প্রতিটি ক্লায়েন্ট লাইব্রেরির (অ্যান্ড্রয়েড, আইওএস, ওয়েব) সাথে নেটিভভাবে উপলব্ধ। ডেভেলপাররা একটি নির্দিষ্ট UI-এর সাথে আবদ্ধ না থেকে পুরাতন ও নতুন ব্যবহারকারীদের সাইন ইন এবং সাইন আপ করতে, ব্যবহারকারীর প্রোপার্টি অ্যাক্সেস করতে, অ্যাকাউন্ট লিঙ্ক, আপডেট ও ডিলিট করতে, পাসওয়ার্ড রিসেট করতে এবং আরও অনেক কিছু করতে পারবেন। আপনি চাইলে, এই এপিআই-এর উপর ভিত্তি করে ম্যানুয়ালি আপনার নিজস্ব সম্পূর্ণ সাইন ইন ফ্লো এবং অভিজ্ঞতা তৈরি করতে পারেন।
মোবাইল অ্যাপের জন্য সেশন ব্যবস্থাপনা
আইডেন্টিটি টুলকিটের মাধ্যমে, অ্যাপগুলো আইডেন্টিটি টুলকিটের প্রাথমিক অথেনটিকেশন ইভেন্টের উপর ভিত্তি করে তাদের নিজস্ব সেশন স্টেট তৈরি করত। ফায়ারবেস অথেনটিকেশন একটি ব্যাকএন্ড সার্ভিস ব্যবহার করে, যা অথেনটিকেশন ইভেন্ট থেকে তৈরি হওয়া একটি রিফ্রেশ টোকেন গ্রহণ করে এবং সেটিকে অ্যান্ড্রয়েড, আইওএস ও জাভাস্ক্রিপ্টের জন্য এক ঘণ্টার অ্যাক্সেস টোকেনে বিনিময় করে। যখন কোনো ব্যবহারকারী তার পাসওয়ার্ড পরিবর্তন করেন, তখন রিফ্রেশ টোকেনগুলো আর নতুন অ্যাক্সেস টোকেন তৈরি করতে পারে না, ফলে ব্যবহারকারী সেই ডিভাইসে পুনরায় অথেনটিকেশন না করা পর্যন্ত অ্যাক্সেস নিষ্ক্রিয় হয়ে যায়।
বেনামী এবং গিটহাব প্রমাণীকরণ
ফায়ারবেস অথেনটিকেশন দুটি নতুন অথেনটিকেশন টাইপ সমর্থন করে: গিটহাব এবং অ্যানোনিমাস। অ্যানোনিমাস সাইন-ইন ব্যবহার করে ব্যবহারকারীকে কোনো সাইন-ইন বা সাইন-আপ প্রক্রিয়ার মধ্য দিয়ে না গিয়েই একটি অনন্য ইউজার আইডি তৈরি করা যায়। একজন অ্যানোনিমাস ব্যবহারকারীর মাধ্যমে, আপনি এখন একজন সাধারণ ব্যবহারকারীর মতোই অথেনটিকেটেড এপিআই কল করতে পারবেন। যখন ব্যবহারকারী একটি অ্যাকাউন্টের জন্য সাইন-আপ করার সিদ্ধান্ত নেন, তখন সমস্ত কার্যকলাপ একই ইউজার আইডির অধীনে সংরক্ষিত থাকে। এটি সার্ভার সাইড শপিং কার্ট বা এমন যেকোনো অ্যাপ্লিকেশনের জন্য খুবই উপযোগী, যেখানে আপনি ব্যবহারকারীকে সাইন-আপ প্রক্রিয়ার মধ্য দিয়ে পাঠানোর আগে তার সাথে যোগাযোগ স্থাপন করতে চান।
বৈশিষ্ট্য পার্থক্য
আইডেন্টিটি টুলকিটের কিছু ফিচার বর্তমানে ফায়ারবেস অথেনটিকেশনে উপলব্ধ নেই, আবার অন্য কিছু ফিচার নতুন করে ডিজাইন করা হয়েছে এবং সেগুলো ভিন্নভাবে কাজ করে। যদি এই ফিচারগুলো আপনার অ্যাপের জন্য গুরুত্বপূর্ণ হয়, তবে আপনি এখনই মাইগ্রেট না করার সিদ্ধান্ত নিতে পারেন। অনেক ক্ষেত্রে, এই ফিচারগুলো আপনার অ্যাপের জন্য গুরুত্বপূর্ণ নাও হতে পারে অথবা এমন সহজ বিকল্প ব্যবস্থা থাকতে পারে যা আপনাকে মাইগ্রেশন প্রক্রিয়া চালিয়ে যেতে সাহায্য করবে।
সার্ভার সাইডের পার্থক্য
এর অন্তর্নিহিত REST API, অ্যাকাউন্ট যাচাইকরণ লজিক এবং প্রাথমিক ব্যবহারকারী ডেটাবেস সহ মূল আইডেন্টিটি টুলকিট পরিষেবাটিতে শুধুমাত্র সামান্য আপডেট করা হয়েছে। কিন্তু কিছু বৈশিষ্ট্য এবং আপনার পরিষেবাতে ফায়ারবেস অথেনটিকেশন সংহত করার পদ্ধতিতে পরিবর্তন এসেছে।
পরিচয় প্রদানকারী
পেপ্যাল এবং এওএল সমর্থিত নয়। এই আইডিপিগুলো থেকে অ্যাকাউন্ট থাকা ব্যবহারকারীরা পাসওয়ার্ড পুনরুদ্ধার প্রক্রিয়া ব্যবহার করে আপনার অ্যাপ্লিকেশনে সাইন ইন করতে এবং তাদের অ্যাকাউন্টের জন্য একটি পাসওয়ার্ড সেট করতে পারবেন।
সার্ভার লাইব্রেরি
বর্তমানে জাভা, নোড.জেএস, পাইথন, গো এবং সি# এর জন্য ফায়ারবেস অ্যাডমিন এসডিকে পাওয়া যায়।
অ্যাকাউন্ট পরিচালনার ইমেল
পাসওয়ার্ড রিসেট, ইমেল যাচাইকরণ এবং ইমেল পরিবর্তনের বার্তাগুলো ফায়ারবেস অথবা ডেভেলপারের নিজস্ব মেইল সার্ভার থেকে সম্পাদন করা যায়। বর্তমানে, ফায়ারবেস ইমেল টেমপ্লেটগুলোতে কাস্টমাইজেশনের সুযোগ সীমিত।
ইমেল ঠিকানা পরিবর্তনের নিশ্চিতকরণ
আইডেন্টিটি টুলকিটে, যখন কোনো ব্যবহারকারী তার ইমেল ঠিকানা পরিবর্তন করার সিদ্ধান্ত নেন, তখন নতুন ঠিকানায় একটি ইমেল পাঠানো হয়, যেটিতে ইমেল ঠিকানা পরিবর্তনের প্রক্রিয়াটি চালিয়ে যাওয়ার জন্য একটি লিঙ্ক থাকে।
ফায়ারবেস পুরোনো ইমেল ঠিকানায় একটি বাতিলকরণ ইমেল পাঠিয়ে ইমেল ঠিকানা পরিবর্তনের বিষয়টি নিশ্চিত করে, যেখানে পরিবর্তনটি পূর্বাবস্থায় ফিরিয়ে আনার জন্য একটি লিঙ্ক থাকে।
আইডিপি রোলআউট
আইডেন্টিটি টুলকিট-এর একটি সুবিধা ছিল যার মাধ্যমে আপনার সাইন-ইন সিস্টেমে পর্যায়ক্রমে আইডেন্টিটি প্রোভাইডার যুক্ত করা যেত, ফলে আপনি আপনার সাপোর্ট রিকোয়েস্টগুলোর উপর এর প্রভাব নিয়ে পরীক্ষা-নিরীক্ষা করতে পারতেন। ফায়ারবেস অথেনটিকেশন থেকে এই ফিচারটি সরিয়ে দেওয়া হয়েছে।
ক্লায়েন্ট পক্ষের পার্থক্য
ফায়ারবেসে, গুগল আইডেন্টিটি টুলকিট দ্বারা প্রদত্ত বৈশিষ্ট্যগুলি দুটি উপাদানে বিভক্ত:
ফায়ারবেস প্রমাণীকরণ এসডিকে
ফায়ারবেস অথেনটিকেশনে, আইডেন্টিটি টুলকিটের REST API দ্বারা প্রদত্ত কার্যকারিতা অ্যান্ড্রয়েড, আইওএস এবং জাভাস্ক্রিপ্টের জন্য উপলব্ধ ক্লায়েন্ট SDK-তে প্যাকেজ করা হয়েছে। REST কলের মাধ্যমে ব্যাক এন্ড সার্ভিসের সাথে যোগাযোগ করার পরিবর্তে, আপনি এই ক্লায়েন্ট SDK ব্যবহার করে ব্যবহারকারীদের সাইন ইন ও সাইন আপ করতে, ব্যবহারকারীর প্রোফাইল তথ্য অ্যাক্সেস করতে, অ্যাকাউন্ট লিঙ্ক, আপডেট ও ডিলিট করতে এবং পাসওয়ার্ড রিসেট করতে পারেন।
ফায়ারবেসইউআই অথেন্টিকেশন
সাইন-ইন, সাইন-আপ, পাসওয়ার্ড পুনরুদ্ধার এবং অ্যাকাউন্ট লিঙ্কিং পরিচালনা করে এমন সমস্ত UI ফ্লো Frebase Authentication SDK ব্যবহার করে নতুন করে তৈরি করা হয়েছে। এগুলি iOS এবং Android-এর জন্য ওপেন সোর্স SDK হিসাবে উপলব্ধ, যা আপনাকে এমনভাবে ফ্লো-গুলিকে সম্পূর্ণরূপে কাস্টমাইজ করার সুযোগ দেয়, যা Identity Toolkit দিয়ে সম্ভব নয়।
অতিরিক্ত পার্থক্যগুলোর মধ্যে রয়েছে:
অধিবেশন এবং স্থানান্তর
যেহেতু আইডেন্টিটি টুলকিট এবং ফায়ারবেস অথেনটিকেশনে সেশন ভিন্নভাবে পরিচালিত হয়, তাই SDK আপগ্রেড করার পর আপনার ব্যবহারকারীদের বিদ্যমান সেশনগুলো বন্ধ হয়ে যাবে এবং তাদের পুনরায় সাইন ইন করতে হবে।
শুরু করার আগে
আইডেন্টিটি টুলকিট থেকে ফায়ারবেস অথেন্টিকেশনে স্থানান্তরিত হওয়ার আগে, আপনাকে অবশ্যই
Firebase কনসোল খুলুন, 'Import Google Project'-এ ক্লিক করুন এবং আপনার Identity Toolkit প্রজেক্টটি নির্বাচন করুন।
IAM ও অ্যাডমিন পেজটি খুলতে settings > অনুমতি-তে ক্লিক করুন।
সার্ভিস অ্যাকাউন্টস পেজটি খুলুন। এখানে আপনি আইডেন্টিটি টুলকিটের জন্য পূর্বে কনফিগার করা সার্ভিস অ্যাকাউন্টটি দেখতে পাবেন।
সার্ভিস অ্যাকাউন্টের পাশে, more_vert > Create key-তে ক্লিক করুন। এরপর, Create private key ডায়ালগ বক্সে, Key type-কে JSON- এ সেট করুন এবং Create-এ ক্লিক করুন। আপনার সার্ভিস অ্যাকাউন্টের ক্রেডেনশিয়ালসহ একটি JSON ফাইল আপনার জন্য ডাউনলোড হয়ে যাবে। পরবর্তী ধাপে SDK ইনিশিয়ালাইজ করার জন্য আপনার এটি প্রয়োজন হবে।
Firebase কনসোলে ফিরে যান। Auth সেকশনে, Email Templates পেজটি খুলুন। এই পেজে, আপনার অ্যাপের ইমেল টেমপ্লেটগুলো কাস্টমাইজ করুন।
আইডেন্টিটি টুলকিটে, যখন ব্যবহারকারীরা পাসওয়ার্ড রিসেট করতেন, ইমেল ঠিকানা পরিবর্তন করতেন এবং তাদের ইমেল ঠিকানা যাচাই করতেন, তখন আইডেন্টিটি টুলকিট সার্ভার থেকে একটি OOB কোড সংগ্রহ করে ইমেলের মাধ্যমে ব্যবহারকারীদের কাছে পাঠাতে হতো। ফায়ারবেস আপনার কনফিগার করা টেমপ্লেটের উপর ভিত্তি করে কোনো অতিরিক্ত পদক্ষেপ ছাড়াই ইমেল পাঠায়।
ঐচ্ছিক : আপনার সার্ভারে ফায়ারবেস পরিষেবাগুলো অ্যাক্সেস করার প্রয়োজন হলে, ফায়ারবেস এসডিকে ইনস্টল করুন।
আপনি
npmব্যবহার করে Firebase Node.js মডিউলটি ইনস্টল করতে পারেন:$ npm init $ npm install --save firebase-adminআপনার কোডে, আপনি নিম্নলিখিত উপায়ে Firebase অ্যাক্সেস করতে পারেন:
var admin = require('firebase-admin'); var app = admin.initializeApp({ credential: admin.credential.cert('path/to/serviceAccountCredentials.json') });
এরপর, আপনার অ্যাপের প্ল্যাটফর্মের জন্য মাইগ্রেশন ধাপগুলো সম্পূর্ণ করুন: অ্যান্ড্রয়েড , আইওএস , ওয়েব ।
সার্ভার এবং জাভাস্ক্রিপ্ট
উল্লেখযোগ্য পরিবর্তন
আইডেন্টিটি টুলকিট থেকে ফায়ারবেসের ওয়েব বাস্তবায়নে আরও বেশ কিছু পার্থক্য রয়েছে।
ওয়েব সেশন ব্যবস্থাপনা
পূর্বে, যখন কোনো ব্যবহারকারী আইডেন্টিটি টুলকিট উইজেট ব্যবহার করে প্রমাণীকরণ করতেন, তখন সেই ব্যবহারকারীর জন্য একটি কুকি সেট করা হতো যা সেশনটি বুটস্ট্র্যাপ করতে ব্যবহৃত হতো। এই কুকিটির মেয়াদ ছিল দুই সপ্তাহ এবং এটি ব্যবহারকারীকে অ্যাকাউন্ট ম্যানেজমেন্ট উইজেট ব্যবহার করে পাসওয়ার্ড ও ইমেল ঠিকানা পরিবর্তন করার সুযোগ দিত। কিছু সাইট তাদের সাইটের অন্য সব পেজ রিকোয়েস্ট প্রমাণীকরণের জন্য এই কুকিটি ব্যবহার করত। অন্যান্য সাইটগুলো তাদের ফ্রেমওয়ার্কের কুকি ম্যানেজমেন্ট সিস্টেমের মাধ্যমে নিজস্ব কুকি তৈরি করার জন্য এই কুকিটি ব্যবহার করত।
ফায়ারবেস ক্লায়েন্ট SDK-গুলো এখন ফায়ারবেস আইডি টোকেন পরিচালনা করে এবং সেশনকে সতেজ রাখতে ফায়ারবেস অথেন্টিকেশনের ব্যাকএন্ডের সাথে কাজ করে। অ্যাকাউন্টে গুরুত্বপূর্ণ পরিবর্তন (যেমন ব্যবহারকারীর পাসওয়ার্ড পরিবর্তন) ঘটলে ব্যাকএন্ড সেশনগুলোর মেয়াদ শেষ করে দেয়। ফায়ারবেস আইডি টোকেনগুলো ওয়েব ক্লায়েন্টে স্বয়ংক্রিয়ভাবে কুকি হিসেবে সেট হয় না এবং এগুলোর মেয়াদ মাত্র এক ঘণ্টা থাকে। যদি না আপনি মাত্র এক ঘণ্টার সেশন চান, তবে আপনার সমস্ত পেজ রিকোয়েস্ট যাচাই করার জন্য কুকি হিসেবে ফায়ারবেস আইডি টোকেন ব্যবহার করা উপযুক্ত নয়। এর পরিবর্তে, ব্যবহারকারী যখন লগ ইন করবে তখন আপনাকে একটি লিসেনার সেট আপ করতে হবে, ফায়ারবেস আইডি টোকেনটি সংগ্রহ করতে হবে , টোকেনটি যাচাই করতে হবে এবং আপনার ফ্রেমওয়ার্কের কুকি ম্যানেজমেন্ট সিস্টেমের মাধ্যমে নিজস্ব কুকি তৈরি করতে হবে।
আপনার অ্যাপ্লিকেশনের নিরাপত্তা চাহিদার উপর ভিত্তি করে কুকির সেশন লাইফটাইম নির্ধারণ করতে হবে।
ওয়েব সাইন-ইন প্রবাহ
পূর্বে, সাইন-ইন শুরু করার সময় ব্যবহারকারী কোন আইডেন্টিফায়ার ব্যবহার করতে চান তা জানার জন্য তাদের
accountchooser.comএ রিডাইরেক্ট করা হতো। এখন Firebase Auth UI-এর ফ্লো শুরু হয় সাইন-ইন পদ্ধতির একটি তালিকা দিয়ে, যার মধ্যে একটি ইমেল অপশনও রয়েছে। এই ইমেল অপশনটি ওয়েবের জন্যaccountchooser.comএ যায় এবং অ্যান্ড্রয়েডে hintRequest API ব্যবহার করে। এছাড়াও, Firebase UI-তে এখন আর ইমেল অ্যাড্রেসের প্রয়োজন নেই। এর ফলে অ্যানোনিমাস ইউজার, কাস্টম অথ ইউজার অথবা এমন প্রোভাইডারদের ইউজারদের সাপোর্ট করা আরও সহজ হবে, যেখানে ইমেল অ্যাড্রেসের প্রয়োজন হয় না।অ্যাকাউন্ট ব্যবস্থাপনা উইজেট
এই উইজেটটি ব্যবহারকারীদের ইমেল ঠিকানা ও পাসওয়ার্ড পরিবর্তন করতে অথবা আইডেন্টিটি প্রোভাইডার থেকে তাদের অ্যাকাউন্ট আনলিঙ্ক করার জন্য একটি ইউজার ইন্টারফেস (UI) প্রদান করে। এটি বর্তমানে নির্মাণাধীন রয়েছে।
সাইন-ইন বোতাম/উইজেট
সাইন-ইন বাটন এবং ইউজার কার্ডের মতো উইজেটগুলো এখন আর দেওয়া হয় না। ফায়ারবেস অথেনটিকেশন এপিআই (Firebase Authentication API) ব্যবহার করে এগুলো খুব সহজেই তৈরি করা যায়।
সাইনআউট ইউআরএল নেই
আপনাকে
firebase.auth.signOut()কল করতে হবে এবং কলব্যাকটি হ্যান্ডেল করতে হবে।কোন oobActionUrl নেই
ইমেল পাঠানোর কাজটি এখন ফায়ারবেস দ্বারা পরিচালিত হয় এবং এটি ফায়ারবেস কনসোলে কনফিগার করা থাকে।
CSS কাস্টমাইজেশন
FirebaseUI ম্যাটেরিয়াল ডিজাইন লাইট স্টাইলিং ব্যবহার করে, যা গতিশীলভাবে ম্যাটেরিয়াল ডিজাইন অ্যানিমেশন যুক্ত করে।
ধাপ ১: সার্ভার কোড পরিবর্তন করুন
যদি আপনার সার্ভার ওয়েব ব্যবহারকারীর সেশন পরিচালনার জন্য আইডেন্টিটি টুলকিট টোকেনের (যা দুই সপ্তাহের জন্য বৈধ) উপর নির্ভর করে, তাহলে সার্ভারটিকে তার নিজস্ব সেশন কুকি ব্যবহার করার জন্য রূপান্তর করতে হবে।
- ব্যবহারকারীর ফায়ারবেস আইডি টোকেন যাচাই করতে এবং সেশন কুকি সেট করার জন্য একটি এন্ডপয়েন্ট বাস্তবায়ন করুন। ক্লায়েন্ট অ্যাপটি এই এন্ডপয়েন্টে ফায়ারবেস আইডি টোকেনটি পাঠায়।
- আগত অনুরোধটিতে যদি আপনার নিজের সেশন কুকি থাকে, তবে আপনি ব্যবহারকারীকে প্রমাণীকৃত বলে গণ্য করতে পারেন। অন্যথায়, অনুরোধটিকে অপ্রমাণীকৃত হিসেবে বিবেচনা করুন।
- আপনি যদি না চান যে আপনার কোনো ব্যবহারকারী তাদের বিদ্যমান লগ-ইন করা সেশনগুলো হারাক, তাহলে সমস্ত আইডেন্টিটি টুলকিট টোকেনের মেয়াদ শেষ হওয়ার জন্য দুই সপ্তাহ অপেক্ষা করুন, অথবা নিচে ৩ নং ধাপে বর্ণিত পদ্ধতি অনুযায়ী আপনার ওয়েব অ্যাপ্লিকেশনের জন্য দ্বৈত টোকেন যাচাইকরণ করুন।
এরপর, যেহেতু Firebase টোকেনগুলো Identity Toolkit টোকেন থেকে ভিন্ন, তাই আপনাকে আপনার টোকেন যাচাইকরণ লজিক আপডেট করতে হবে। আপনার সার্ভারে Firebase Server SDK ইনস্টল করুন; অথবা, যদি আপনি এমন কোনো ভাষা ব্যবহার করেন যা Firebase Server SDK দ্বারা সমর্থিত নয়, তবে আপনার পরিবেশের জন্য একটি JWT টোকেন যাচাইকরণ লাইব্রেরি ডাউনলোড করুন এবং টোকেনটি সঠিকভাবে যাচাই করুন ।
যখন আপনি প্রথমবার উপরের আপডেটগুলি করবেন, তখনও আপনার এমন কিছু কোড পাথ থাকতে পারে যা আইডেন্টিটি টুলকিট টোকেনের উপর নির্ভরশীল। যদি আপনার iOS বা Android অ্যাপ্লিকেশন থাকে, তাহলে নতুন কোড পাথগুলি কাজ করানোর জন্য ব্যবহারকারীদের অ্যাপটির নতুন সংস্করণে আপগ্রেড করতে হবে। আপনি যদি আপনার ব্যবহারকারীদের অ্যাপ আপডেট করতে বাধ্য করতে না চান, তাহলে আপনি অতিরিক্ত সার্ভার ভ্যালিডেশন লজিক যোগ করতে পারেন যা টোকেনটি পরীক্ষা করে নির্ধারণ করবে যে টোকেনটি ভ্যালিডেট করার জন্য ফায়ারবেস SDK নাকি আইডেন্টিটি টুলকিট SDK ব্যবহার করতে হবে। যদি আপনার শুধুমাত্র একটি ওয়েব অ্যাপ্লিকেশন থাকে, তাহলে সমস্ত নতুন অথেনটিকেশন অনুরোধ ফায়ারবেসে স্থানান্তরিত হবে এবং, ফলস্বরূপ, আপনাকে শুধুমাত্র ফায়ারবেস টোকেন যাচাইকরণ পদ্ধতিগুলি ব্যবহার করতে হবে।
ফায়ারবেস ওয়েব এপিআই রেফারেন্স দেখুন।
ধাপ ২: আপনার HTML আপডেট করুন
আপনার অ্যাপে ফায়ারবেস ইনিশিয়ালাইজেশন কোড যোগ করুন:
- ফায়ারবেস কনসোলে আপনার প্রজেক্টটি খুলুন।
- ওভারভিউ পেজে, 'Add App'-এ ক্লিক করুন, তারপর 'Add Firebase to your web app'-এ ক্লিক করুন। Firebase চালু করার একটি কোড স্নিপেট প্রদর্শিত হবে।
- প্রারম্ভিক কোডটি কপি করে আপনার ওয়েব পেজে পেস্ট করুন।
আপনার অ্যাপে 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>আপনার অ্যাপ থেকে আইডেন্টিটি টুলকিট এসডিকে (Identity Toolkit SDK) সরিয়ে ফেলুন।
যদি আপনি সেশন ব্যবস্থাপনার জন্য আইডেন্টিটি টুলকিট আইডি টোকেনের উপর নির্ভর করে থাকেন, তাহলে আপনাকে ক্লায়েন্ট সাইডে নিম্নলিখিত পরিবর্তনগুলি করতে হবে:
Firebase-এ সফলভাবে সাইন ইন করার পর,
firebase.auth().currentUser.getToken()কল করে একটি Firebase ID টোকেন সংগ্রহ করুন।ফায়ারবেস আইডি টোকেনটি ব্যাকএন্ড সার্ভারে পাঠান, সেটি যাচাই করুন এবং আপনার নিজস্ব সেশন কুকি তৈরি করুন।
সংবেদনশীল কার্যক্রম সম্পাদন করার সময় বা আপনার সার্ভারে প্রমাণীকৃত সম্পাদনার অনুরোধ পাঠানোর সময় শুধুমাত্র সেশন কুকির উপর নির্ভর করবেন না। আপনাকে অতিরিক্ত ক্রস-সাইট রিকোয়েস্ট ফোরজারি (CSRF) সুরক্ষা প্রদান করতে হবে।
যদি আপনার ফ্রেমওয়ার্ক CSRF সুরক্ষা প্রদান না করে, তবে আক্রমণ প্রতিরোধের একটি উপায় হলো
getToken()ব্যবহার করে সাইন-ইন করা ব্যবহারকারীর জন্য একটি Firebase ID টোকেন সংগ্রহ করা এবং প্রতিটি অনুরোধের সাথে টোকেনটি অন্তর্ভুক্ত করা (ডিফল্টরূপে সেশন কুকিও পাঠানো হবে)। এরপর, আপনার ব্যাকএন্ড ফ্রেমওয়ার্ক দ্বারা সম্পন্ন করা সেশন কুকি যাচাইয়ের পাশাপাশি, আপনি Firebase সার্ভার SDK ব্যবহার করে সেই টোকেনটি যাচাই করবেন। এটি CSRF আক্রমণ সফল হওয়াকে আরও কঠিন করে তুলবে, কারণ Firebase ID টোকেনটি শুধুমাত্র ওয়েব স্টোরেজে সংরক্ষিত থাকে এবং কখনোই কুকিতে থাকে না।আইডেন্টিটি টুলকিট টোকেনগুলো দুই সপ্তাহের জন্য বৈধ থাকে। আপনি দুই সপ্তাহ মেয়াদী টোকেন প্রদান করা চালিয়ে যেতে পারেন, অথবা আপনার অ্যাপের নিরাপত্তা চাহিদার উপর ভিত্তি করে এর মেয়াদ বাড়াতে বা কমাতেও পারেন। কোনো ব্যবহারকারী সাইন আউট করলে, সেশন কুকিটি মুছে ফেলুন।
ধাপ ৩: IDP রিডাইরেক্ট URL গুলো আপডেট করুন
Firebase কনসোলে, Authentication সেকশনটি খুলুন এবং Sign-in Method ট্যাবে ক্লিক করুন।
আপনার সমর্থিত প্রতিটি ফেডারেটেড সাইন-ইন প্রোভাইডারের জন্য নিম্নলিখিত কাজগুলো করুন:
- সাইন-ইন প্রদানকারীর নামে ক্লিক করুন।
- OAuth রিডাইরেক্ট URI-টি কপি করুন।
- সাইন-ইন প্রোভাইডারের ডেভেলপার কনসোলে OAuth রিডাইরেক্ট URI আপডেট করুন।
অ্যান্ড্রয়েড
ধাপ ১: আপনার অ্যাপে Firebase যোগ করুন
Firebase কনসোলটি খুলুন এবং আপনার ইতিমধ্যে ইম্পোর্ট করা Identity Toolkit প্রজেক্টটি নির্বাচন করুন।
ওভারভিউ পেজে, 'অ্যাড অ্যাপ' (Add App) -এ ক্লিক করুন এবং তারপরে আপনার অ্যান্ড্রয়েড অ্যাপে ফায়ারবেস যোগ করুন (Add Firebase to your Android app) -এ ক্লিক করুন। 'অ্যাড ফায়ারবেস' (Add Firebase) ডায়ালগে, আপনার অ্যাপের প্যাকেজ নেম এবং সাইনিং সার্টিফিকেট ফিঙ্গারপ্রিন্ট প্রদান করুন এবং 'অ্যাড অ্যাপ' (Add App) -এ ক্লিক করুন। এরপর
google-services.jsonকনফিগারেশন ফাইলটি আপনার কম্পিউটারে ডাউনলোড হয়ে যাবে।কনফিগারেশন ফাইলটি আপনার অ্যান্ড্রয়েড অ্যাপ মডিউলের রুট ডিরেক্টরিতে কপি করুন। এই কনফিগারেশন ফাইলে প্রজেক্ট এবং গুগল OAuth ক্লায়েন্টের তথ্য রয়েছে।
আপনার প্রজেক্ট-স্তরের
build.gradleফাইলে (<var>your-project</var>/build.gradle),defaultConfigবিভাগে আপনার অ্যাপের প্যাকেজ নামটি উল্লেখ করুন:defaultConfig { ….. applicationId "com.your-app" }এছাড়াও আপনার প্রোজেক্ট-স্তরের
build.gradleফাইলে, google-services প্লাগইনটি অন্তর্ভুক্ত করার জন্য একটি ডিপেন্ডেন্সি যোগ করুন:buildscript { dependencies { // Add this line classpath 'com.google.gms:google-services:3.0.0' } }আপনার অ্যাপের অ্যাপ-লেভেলের
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'google-services প্লাগইনটি আপনার অ্যাপ্লিকেশনকে Firebase ব্যবহারের জন্য কনফিগার করতে
google-services.jsonফাইলটি ব্যবহার করে।এছাড়াও অ্যাপ-লেভেলের
build.gradleফাইলে Firebase Authentication ডিপেন্ডেন্সিটি যোগ করুন:compile 'com.google.firebase:firebase-auth:24.0.1' compile 'com.google.android.gms:play-services-auth:21.5.1'
ধাপ ২: আইডেন্টিটি টুলকিট এসডিকে সরিয়ে ফেলুন
-
AndroidManifest.xmlফাইল থেকে Identity Toolkit কনফিগারেশনটি সরিয়ে ফেলুন। এই তথ্যটিgoogle-service.jsonফাইলে অন্তর্ভুক্ত থাকে এবং google-services প্লাগইন দ্বারা লোড করা হয়। - আপনার অ্যাপ থেকে আইডেন্টিটি টুলকিট এসডিকে (Identity Toolkit SDK) সরিয়ে ফেলুন।
ধাপ ৩: আপনার অ্যাপে FirebaseUI যোগ করুন
আপনার অ্যাপে FirebaseUI Auth যোগ করুন।
আপনার অ্যাপে, Identity Toolkit SDK-এর কলগুলোকে FirebaseUI-এর কল দিয়ে প্রতিস্থাপন করুন।
আইওএস
ধাপ ১: আপনার অ্যাপে Firebase যোগ করুন
নিম্নলিখিত কমান্ডগুলো চালিয়ে আপনার অ্যাপে Firebase SDK যোগ করুন:
$ cd your-project directory $ pod init $ pod 'Firebase'Firebase কনসোলটি খুলুন এবং আপনার ইতিমধ্যে ইম্পোর্ট করা Identity Toolkit প্রজেক্টটি নির্বাচন করুন।
ওভারভিউ পেজে, 'অ্যাড অ্যাপ' (Add App) -এ ক্লিক করুন এবং তারপরে আপনার iOS অ্যাপে Firebase যোগ করতে 'অ্যাড ফায়ারবেস' (Add Firebase to your iOS app) -এ ক্লিক করুন। 'অ্যাড ফায়ারবেস' (Add Firebase) ডায়ালগে, আপনার অ্যাপের বান্ডেল আইডি (bundle ID) এবং অ্যাপ স্টোর আইডি (App Store ID) দিন এবং তারপরে 'অ্যাড অ্যাপ' (Add App) -এ ক্লিক করুন। এরপর
GoogleService-Info.plistকনফিগারেশন ফাইলটি আপনার কম্পিউটারে ডাউনলোড হয়ে যাবে। যদি আপনার প্রোজেক্টে একাধিক বান্ডেল আইডি থাকে, তবে প্রতিটি বান্ডেল আইডিকে ফায়ারবেস কনসোলে সংযুক্ত করতে হবে, যাতে সেটির নিজস্বGoogleService-Info.plistফাইল থাকতে পারে।কনফিগারেশন ফাইলটি আপনার Xcode প্রোজেক্টের রুটে কপি করুন এবং সমস্ত টার্গেটে এটি যুক্ত করুন।
ধাপ ২: আইডেন্টিটি টুলকিট এসডিকে সরিয়ে ফেলুন
- আপনার অ্যাপের Podfile থেকে
GoogleIdentityToolkitসরিয়ে ফেলুন। -
pod installকমান্ডটি চালান।
ধাপ ৩: আপনার অ্যাপে FirebaseUI যোগ করুন
আপনার অ্যাপে FirebaseUI Auth যোগ করুন।
আপনার অ্যাপে, Identity Toolkit SDK-এর কলগুলোকে FirebaseUI-এর কল দিয়ে প্রতিস্থাপন করুন।