Google Identity Toolkit-এর নতুন ভার্সন Firebase Authentication হিসেবে রিলিজ করা হয়েছে। ভবিষ্যতে, Identity Toolkit-এ ফিচার সংক্রান্ত কাজ বন্ধ করে দেওয়া হবে এবং সব নতুন ফিচার ডেভেলপমেন্ট Firebase Authentication-এ করা হবে। আমরা Identity Toolkit ডেভেলপারদের Firebase যাচাইকরণে শিফট করার জন্য উৎসাহিত করি, তবে Identity Toolkit কাজ করা চালিয়ে যাবে এবং আরও ঘোষণা না করা পর্যন্ত এটি বন্ধ করা হবে না।
নতুন বৈশিষ্ট্যাদি
Firebase যাচাইকরণে Google Identity Toolkit-এর তুলনায় আগে থেকেই কিছু গুরুত্বপূর্ণ ফিচার উন্নত করা হয়েছে:
Firebase-এর সব অ্যাক্সেস
Firebase হল একটি মোবাইল প্ল্যাটফর্ম যা আপনাকে দ্রুত খুব ভালো কোয়ালিটির অ্যাপ ডেভেলপ করতে, ব্যবহারকারীর সংখ্যা বাড়াতে এবং আরও বেশি উপার্জন করতে সাহায্য করে। Firebase-এ পরিপূরক ফিচার আছে যা আপনি নিজের প্রয়োজন অনুযায়ী মিশিয়ে ব্যবহার করতে পারেন এবং এতে নিম্নলিখিত বিষয়ের জন্য পরিকাঠামো আছে: মোবাইল অ্যানালিটিক্স, ক্লাউড মেসেজিং, রিয়েল-টাইম ডেটাবেস, ফাইল স্টোরেজ, স্ট্যাটিক হোস্টিং, রিমোট কনফিগারেশন, মোবাইল ক্র্যাশ রিপোর্টিং এবং Android টেস্টিং।
আপডেট করা UI
Google-এর লেটেস্ট UX গবেষণার উপর ভিত্তি করে আমরা UI ফ্লো সম্পূর্ণ নতুন করে তৈরি করেছি। এর মধ্যে পাসওয়ার্ড ফিরিয়ে আনা, অ্যাকাউন্ট লিঙ্ক করা, নতুন/আগে থেকে থাকা অ্যাকাউন্ট ডিসঅ্যাম্বিগুয়েশন ফ্লো অন্তর্ভুক্ত যা কোড ও ডিবাগ করতে প্রায়ই অনেক সময় লাগে। এটি Android-এ পাসওয়ার্ডের জন্য Smart Lock ইন্টিগ্রেট করে, যা অংশগ্রহণকারী অ্যাপের জন্য সাইন-ইন ও সাইন-আপ কনভার্সন উল্লেখযোগ্যভাবে উন্নত করেছে। এছাড়াও, এটি আপনার অ্যাপ্লিকেশনের সাথে মানানসই করার জন্য সহজ থিম পরিবর্তনকে সমর্থন করে এবং সর্বাধিক কাস্টমাইজ করার জন্য, Android এবং iOS ভার্সন ওপেন সোর্স করা হয়েছে।
সহজ সার্ভার সেট-আপ
Firebase যাচাইকরণ ব্যবহার করার বিষয়টি আমরা ডেভেলপারদের জন্য আরও সহজ করে দিয়েছি। Identity Toolkit-এর ক্ষেত্রে আমরা দেখেছি যে অনেক ডেভেলপার ইমেল ফিরিয়ে আনার ফ্লো প্রয়োগ না করার সিদ্ধান্ত নিয়েছেন, যার ফলে তাদের ব্যবহারকারীরা পাসওয়ার্ড ভুলে গেলে অ্যাকাউন্ট ফিরিয়ে আনা অসম্ভব হয়ে পড়ে। Firebase যাচাইকরণ ব্যবহারকারীকে ইমেল যাচাইকরণ, পাসওয়ার্ড রিসেট ও পাসওয়ার্ড পরিবর্তন সংক্রান্ত মেসেজ পাঠাতে পারে এবং আপনার ব্যবহারকারীদের জন্য টেক্সট সহজেই কাস্টমাইজ করা যায়। এছাড়াও, রিডাইরেক্ট হোস্ট করা এবং পাসওয়ার্ড পরিবর্তন করার অপারেশন সম্পূর্ণ করার জন্য আপনাকে আর 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 যাচাইকরণ থেকে এই ফিচার সরিয়ে দেওয়া হয়েছে।
ক্লায়েন্ট সাইড সংক্রান্ত পার্থক্য
Firebase-এ, Google Identity Toolkit-এর প্রদান করা ফিচারগুলিকে দুটি কম্পোনেন্টে ভাগ করা হয়েছে:
Firebase Authentication SDK
Firebase যাচাইকরণে, Identity Toolkit-এর REST API-এর মাধ্যমে প্রদান করা কার্যকারিতা Android, iOS এবং JavaScript-এর জন্য উপলভ্য ক্লায়েন্ট SDK-তে প্যাকেজ করা হয়েছে। আপনি SDK ব্যবহার করে ব্যবহারকারীদের সাইন-ইন ও সাইন-আপ করাতে পারবেন; ব্যবহারকারীর প্রোফাইল তথ্য অ্যাক্সেস করতে পারবেন; অ্যাকাউন্ট লিঙ্ক, আপডেট ও মুছে দিতে পারবেন; এবং REST কলের মাধ্যমে ব্যাক-এন্ড পরিষেবার সাথে যোগাযোগ করার পরিবর্তে ক্লায়েন্ট SDK ব্যবহার করে পাসওয়ার্ড রিসেট করতে পারবেন।
FirebaseUI Auth
সাইন-ইন, সাইন-আপ, পাসওয়ার্ড ফিরিয়ে আনা এবং অ্যাকাউন্ট লিঙ্ক করা ম্যানেজ করে এমন সব UI ফ্লো Firebase যাচাইকরণ SDK ব্যবহার করে আবার তৈরি করা হয়েছে। এগুলি iOS ও Android-এর জন্য ওপেন সোর্স SDK হিসেবে উপলভ্য, যাতে আপনি Identity Toolkit-এর মাধ্যমে সম্ভব নয় এমন উপায়ে ফ্লো সম্পূর্ণ কাস্টমাইজ করতে পারেন।
অতিরিক্ত পার্থক্যগুলির মধ্যে এগুলি অন্তর্ভুক্ত:
সেশন ও মাইগ্রেশন
Identity Toolkit এবং Firebase Authentication-এ সেশন আলাদাভাবে ম্যানেজ করা হয় বলে, SDK আপগ্রেড করার পরে আপনার ব্যবহারকারীদের আগে থেকে থাকা সেশন বন্ধ হয়ে যাবে এবং তাদের আবার সাইন-ইন করতে হবে।
শুরু করার আগে
Identity Toolkit থেকে Firebase যাচাইকরণে মাইগ্রেট করার আগে, আপনাকে অবশ্যই
Firebase কনসোল খুলুন, Google প্রোজেক্ট ইমপোর্ট করুন বিকল্পে ক্লিক করুন এবং আপনার Identity Toolkit প্রোজেক্ট বেছে নিন।
IAM ও অ্যাডমিন পৃষ্ঠা খুলতে settings > অনুমতি বিকল্পে ক্লিক করুন।
পরিষেবার অ্যাকাউন্ট-এর পৃষ্ঠা খুলুন। এখানে আপনি Identity Toolkit-এর জন্য আগে কনফিগার করা পরিষেবা অ্যাকাউন্ট দেখতে পাবেন।
পরিষেবা অ্যাকাউন্টের পাশে, more_vert > কী তৈরি করুন বিকল্পে ক্লিক করুন। তারপর, প্রাইভেট কী তৈরি করুন ডায়ালগে, 'কীয়ের ধরন' JSON হিসেবে সেট করুন এবং তৈরি করুন বিকল্পে ক্লিক করুন। আপনার পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল সহ একটি JSON ফাইল আপনার জন্য ডাউনলোড করা হয়। পরবর্তী ধাপে SDK চালু করার জন্য আপনার এটি প্রয়োজন হবে।
Firebase কনসোলে ফিরে যান। 'অনুমোদন' বিভাগে, ইমেল টেমপ্লেট পৃষ্ঠা খুলুন। এই পৃষ্ঠায়, আপনার অ্যাপের ইমেল টেমপ্লেট কাস্টমাইজ করুন।
Identity Toolkit-এ, ব্যবহারকারীরা পাসওয়ার্ড রিসেট করলে, ইমেল আইডি পরিবর্তন করলে এবং ইমেল আইডি যাচাই করলে, আপনাকে Identity Toolkit সার্ভার থেকে OOB কোড পেতে হত এবং তারপরে ইমেলের মাধ্যমে ব্যবহারকারীদের কোড পাঠাতে হত। Firebase আপনার কনফিগার করা টেমপ্লেটের উপর ভিত্তি করে ইমেল পাঠায়, এর জন্য কোনও অতিরিক্ত অ্যাকশন নেওয়ার প্রয়োজন হয় না।
ঐচ্ছিক: আপনার সার্ভারে Firebase পরিষেবা অ্যাক্সেস করার প্রয়োজন হলে, Firebase SDK ইনস্টল করুন।
আপনি
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') });
এরপরে, আপনার অ্যাপের প্ল্যাটফর্মের জন্য মাইগ্রেশন সংক্রান্ত ধাপগুলি সম্পূর্ণ করুন: Android, iOS, ওয়েব।
সার্ভার ও জাভাস্ক্রিপ্ট
উল্লেখযোগ্য পরিবর্তন
Identity Toolkit থেকে Firebase-এর ওয়েব ইমপ্লিমেন্টেশনে আরও অনেক পার্থক্য আছে।
ওয়েব সেশন ম্যানেজমেন্ট
আগে, কোনও ব্যবহারকারী Identity Toolkit উইজেট ব্যবহার করে যাচাইকরণ করলে, ব্যবহারকারীর জন্য একটি কুকি সেট করা হত যা সেশন বুটস্ট্র্যাপ করতে ব্যবহার করা হত। এই কুকির মেয়াদ দুই সপ্তাহ ছিল এবং ব্যবহারকারীকে পাসওয়ার্ড ও ইমেল আইডি পরিবর্তন করার জন্য অ্যাকাউন্ট ম্যানেজমেন্ট উইজেট ব্যবহার করার অনুমতি দিতে এটি ব্যবহার করা হয়েছিল। সাইটের অন্যান্য পৃষ্ঠায় অনুরোধ যাচাই করার জন্য কিছু সাইট এই কুকি ব্যবহার করে। অন্যান্য সাইট তাদের ফ্রেমওয়ার্কের' কুকি ম্যানেজমেন্ট সিস্টেমের মাধ্যমে নিজস্ব কুকি তৈরি করতে কুকি ব্যবহার করেছে।
Firebase ক্লায়েন্ট SDK এখন Firebase ID টোকেন ম্যানেজ করে এবং সেশন ফ্রেশ রাখার জন্য Firebase যাচাইকরণের ব্যাকএন্ডের সাথে কাজ করে। অ্যাকাউন্টে গুরুত্বপূর্ণ পরিবর্তন (যেমন ব্যবহারকারীর পাসওয়ার্ড পরিবর্তন) করা হলে, ব্যাকএন্ড সেশনের মেয়াদ শেষ করে দেয়। Firebase ID টোকেন ওয়েব ক্লায়েন্টে অটোমেটিক কুকি হিসেবে সেট হয় না এবং এর মেয়াদ মাত্র এক ঘণ্টা থাকে। আপনি যদি এক ঘণ্টার সেশন চান, তাহলে Firebase ID টোকেন আপনার সব পৃষ্ঠার অনুরোধ যাচাই করার জন্য কুকি হিসেবে ব্যবহার করা উপযুক্ত নয়। পরিবর্তে, ব্যবহারকারী লগ-ইন করলে, লিসনার সেট-আপ করতে হবে, Firebase ID টোকেন পেতে হবে, টোকেন যাচাই করতে হবে এবং আপনার ফ্রেমওয়ার্কের কুকি ম্যানেজমেন্ট সিস্টেমের মাধ্যমে নিজের কুকি তৈরি করতে হবে।
আপনার অ্যাপ্লিকেশনের নিরাপত্তা সংক্রান্ত প্রয়োজনীয়তার উপর ভিত্তি করে আপনাকে কুকির সেশন লাইফটাইম সেট করতে হবে।
ওয়েব সাইন-ইন ফ্লো
আগে, ব্যবহারকারী কোন শনাক্তকারী ব্যবহার করতে চান তা জানতে সাইন-ইন শুরু হলে ব্যবহারকারীদের
accountchooser.com-এ রিডাইরেক্ট করা হত। Firebase Auth UI-এর ফ্লো এখন সাইন-ইন পদ্ধতির একটি তালিকা দিয়ে শুরু হয়, এর মধ্যে ইমেল বিকল্পও থাকে যা ওয়েবের জন্যaccountchooser.com-এ যায় এবং Android-এ hintRequest API ব্যবহার করে। এছাড়াও, Firebase UI-তে আর ইমেল আইডির প্রয়োজন নেই। এর ফলে, ইমেল আইডির প্রয়োজন নেই এমন প্রদানকারীর থেকে আসা বেনামী ব্যবহারকারী, কাস্টম অথ ব্যবহারকারী বা ব্যবহারকারীদের সহায়তা প্রদান করা সহজ হবে।অ্যাকাউন্ট ম্যানেজমেন্ট উইজেট
এই উইজেট ব্যবহারকারীদের ইমেল আইডি পরিবর্তন করতে, পাসওয়ার্ড পরিবর্তন করতে অথবা পরিচয় প্রদানকারীর থেকে তাদের অ্যাকাউন্ট আনলিঙ্ক করতে UI প্রদান করে। এটি বর্তমানে ডেভেলপ করা হচ্ছে।
সাইন-ইন বোতাম/উইজেট
সাইন-ইন বোতাম এবং ব্যবহারকারীর কার্ডের মতো উইজেট আর প্রদান করা হয় না। Firebase যাচাইকরণ API ব্যবহার করে এগুলি খুব সহজেই তৈরি করা যায়।
signOutUrl নেই
আপনাকে
firebase.auth.signOut()-এ কল করতে হবে এবং কলব্যাক ম্যানেজ করতে হবে।কোনও oobActionUrl নেই
ইমেল পাঠানোর কাজটি এখন Firebase ম্যানেজ করে এবং Firebase কনসোলে কনফিগার করা হয়।
CSS কাস্টমাইজেশন
FirebaseUI Material Design Lite স্টাইলিং ব্যবহার করে, যা ডায়নামিক উপায়ে Material Design অ্যানিমেশন যোগ করে।
ধাপ ১: সার্ভার কোড পরিবর্তন করুন
ওয়েব ব্যবহারকারীর সেশন ম্যানেজ করার জন্য আপনার সার্ভার যদি Identity Toolkit টোকেনের (দু'সপ্তাহের জন্য বৈধ) উপর নির্ভর করে, তাহলে আপনাকে সার্ভারকে কনভার্ট করে নিজস্ব সেশন কুকি ব্যবহার করতে হবে।
- Firebase ID টোকেন যাচাই করার জন্য একটি এন্ডপয়েন্ট প্রয়োগ করুন এবং ব্যবহারকারীর জন্য সেশন কুকি সেট করুন। ক্লায়েন্ট অ্যাপ এই এন্ডপয়েন্টে Firebase ID টোকেন পাঠায়।
- ইনকামিং অনুরোধে আপনার নিজের সেশন কুকি থাকলে, আপনি ব্যবহারকারীকে যাচাই করা হয়েছে বলে বিবেচনা করতে পারেন। অন্যথায়, অনুরোধটিকে অননুমোদিত হিসেবে বিবেচনা করুন।
- আপনি যদি না চান যে আপনার কোনও ব্যবহারকারী তাদের বিদ্যমান লগ-ইন করা সেশন হারান, তাহলে আপনাকে সমস্ত আইডেন্টিটি টুলকিট টোকেনের মেয়াদ শেষ হওয়ার জন্য দুই সপ্তাহ অপেক্ষা করতে হবে, অথবা আপনার ওয়েব অ্যাপ্লিকেশনের জন্য ডুয়াল টোকেন যাচাইকরণও করতে হবে যেমন নিচে ৩ নম্বর ধাপে বর্ণনা করা হয়েছে।
এরপরে, Firebase টোকেন Identity Toolkit টোকেনের থেকে আলাদা হওয়ার কারণে, আপনাকে টোকেন যাচাইকরণ লজিক আপডেট করতে হবে। আপনার সার্ভারে Firebase Server SDK ইনস্টল করুন; অথবা, আপনি যদি এমন কোনও ভাষা ব্যবহার করেন যা Firebase Server SDK-তে কাজ করে না, তাহলে আপনার এনভায়রনমেন্টের জন্য JWT টোকেন যাচাইকরণ লাইব্রেরি ডাউনলোড করুন এবং সঠিকভাবে টোকেন যাচাই করুন।
আপনি প্রথমবার উপরের আপডেটগুলি করার সময়, আপনার কাছে এখনও কোড পাথ থাকতে পারে যা Identity Toolkit টোকেনের উপর নির্ভর করে। আপনার iOS বা Android অ্যাপ্লিকেশন থাকলে, নতুন কোড পাথ কাজ করার জন্য ব্যবহারকারীদের অ্যাপের নতুন ভার্সনে আপগ্রেড করতে হবে। আপনি যদি ব্যবহারকারীদের আপনার অ্যাপ আপডেট করতে বাধ্য করতে না চান, তাহলে আপনি অতিরিক্ত সার্ভার যাচাইকরণ লজিক যোগ করতে পারেন যা টোকেন পরীক্ষা করে এবং নির্ধারণ করে যে টোকেন যাচাই করার জন্য Firebase SDK বা Identity Toolkit SDK ব্যবহার করতে হবে কিনা। আপনার কাছে শুধুমাত্র ওয়েব অ্যাপ্লিকেশন থাকলে, সব নতুন যাচাইকরণের অনুরোধ Firebase-এ শিফট করা হবে এবং সেই কারণে, আপনাকে শুধুমাত্র Firebase টোকেন যাচাইকরণ পদ্ধতি ব্যবহার করতে হবে।
Firebase Web API রেফারেন্স দেখুন।
ধাপ ২: আপনার HTML আপডেট করুন
আপনার অ্যাপে Firebase ইনিশিয়ালাইজেশন কোড যোগ করুন:
- Firebase কনসোলে আপনার প্রোজেক্ট খুলুন।
- ওভারভিউ পৃষ্ঠায়, অ্যাপ যোগ করুন বিকল্পে ক্লিক করুন, তারপর আপনার ওয়েব অ্যাপে Firebase যোগ করুন বিকল্পে ক্লিক করুন। 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 সরিয়ে দিন।
সেশন ম্যানেজমেন্টের জন্য আপনি Identity Toolkit আইডি টোকেনের উপর নির্ভর করলে, আপনাকে ক্লায়েন্ট সাইডে নিম্নলিখিত পরিবর্তনগুলি করতে হবে:
Firebase-এ সফলভাবে সাইন-ইন করার পরে,
firebase.auth().currentUser.getToken()কল করে Firebase ID টোকেন পান।Firebase ID টোকেনটি ব্যাকএন্ড সার্ভারে পাঠান, এটি যাচাই করুন এবং আপনার নিজস্ব সেশন কুকি ইস্যু করুন।
সংবেদনশীল অপারেশন পারফর্ম করা বা আপনার সার্ভারে যাচাই করা এডিট করার অনুরোধ পাঠানোর সময় শুধুমাত্র সেশন কুকির উপর নির্ভর করবেন না। আপনাকে অতিরিক্ত ক্রস-সাইট রিকোয়েস্ট ফর্জারি (CSRF) সুরক্ষা প্রদান করতে হবে।
আপনার ফ্রেমওয়ার্ক CSRF সুরক্ষা প্রদান না করলে, অ্যাটাক আটকানোর একটি উপায় হল সাইন-ইন করা ব্যবহারকারীর জন্য
getToken()সহ Firebase ID টোকেন পাওয়া এবং প্রতিটি অনুরোধের সাথে টোকেনটি অন্তর্ভুক্ত করা (সেশন কুকিও ডিফল্ট হিসেবে পাঠানো হবে)। তারপরে, সেশন কুকি চেক ছাড়াও Firebase সার্ভার SDK ব্যবহার করে আপনাকে সেই টোকেন যাচাই করতে হবে, যা আপনার ব্যাকএন্ড ফ্রেমওয়ার্ক সম্পূর্ণ করেছে। এর ফলে CSRF অ্যাটাক সফল হওয়া কঠিন হয়ে যাবে, কারণ Firebase ID টোকেন শুধুমাত্র ওয়েব স্টোরেজ ব্যবহার করে সেভ করা হয় এবং কখনই কুকিতে সেভ করা হয় না।Identity Toolkit টোকেন দুই সপ্তাহের জন্য বৈধ। আপনি হয়ত দুই সপ্তাহ মেয়াদী টোকেন ইস্যু করা চালিয়ে যেতে চান অথবা আপনার অ্যাপের নিরাপত্তা সংক্রান্ত প্রয়োজনীয়তার উপর ভিত্তি করে সেটির মেয়াদ আরও বেশি বা কম করতে চান। কোনও ব্যবহারকারী সাইন-আউট করলে, সেশন কুকি মুছে দিন।
ধাপ ৩: IDP রিডাইরেক্ট URL আপডেট করা
Firebase কনসোলে, 'যাচাইকরণ' বিভাগটি খুলুন এবং সাইন-ইন পদ্ধতি ট্যাবে ক্লিক করুন।
আপনি যেসব ফেডারেটেড সাইন-ইন পরিষেবা প্রদানকারীকে সমর্থন করেন, তাদের প্রত্যেকটির জন্য নিম্নলিখিত কাজগুলি করুন:
- সাইন-ইন পরিষেবা প্রদানকারীর নামে ক্লিক করুন।
- OAuth রিডাইরেক্ট URI কপি করুন।
- সাইন-ইন প্রোভাইডারের ডেভেলপার কনসোলে, OAuth রিডাইরেক্ট URI আপডেট করুন।
Android
ধাপ ১: আপনার অ্যাপে Firebase যোগ করুন
Firebase কনসোল খুলুন এবং আপনার Identity Toolkit প্রোজেক্ট বেছে নিন, যেটি আপনি আগেই ইমপোর্ট করেছেন।
'ওভারভিউ' পৃষ্ঠায়, অ্যাপ যোগ করুন বিকল্পে ক্লিক করুন এবং তারপর আপনার Android অ্যাপে Firebase যোগ করুন বিকল্পে ক্লিক করুন। Firebase যোগ করুন ডায়ালগে, আপনার অ্যাপের প্যাকেজ নাম ও সই করার সার্টিফিকেটের ফিঙ্গারপ্রিন্ট দিন এবং অ্যাপ যোগ করুন বিকল্পে ক্লিক করুন। এরপরে
google-services.jsonকনফিগারেশন ফাইল আপনার কম্পিউটারে ডাউনলোড করা হবে।আপনার Android অ্যাপ মডিউলের রুট ডিরেক্টরিতে কনফিগারেশন ফাইল কপি করুন। এই কনফিগারেশন ফাইলে প্রোজেক্ট ও Google 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'Firebase ব্যবহার করার জন্য আপনার অ্যাপ্লিকেশন কনফিগার করতে google-services প্লাগ-ইন
google-services.jsonফাইল ব্যবহার করে।এছাড়াও, অ্যাপ-লেভেল
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 সরিয়ে দিন
AndroidManifest.xmlফাইল থেকে Identity Toolkit কনফিগারেশন সরিয়ে দিন। এই তথ্যgoogle-service.jsonফাইলে অন্তর্ভুক্ত থাকে এবং google-services প্লাগ-ইন লোড করে।- আপনার অ্যাপ থেকে Identity Toolkit SDK সরিয়ে দিন।
ধাপ ৩: আপনার অ্যাপে FirebaseUI যোগ করুন
আপনার অ্যাপে FirebaseUI Auth যোগ করুন।
আপনার অ্যাপে, Identity Toolkit SDK-তে কল করার পরিবর্তে FirebaseUI-তে কল করুন।
iOS
ধাপ ১: আপনার অ্যাপে Firebase যোগ করুন
নিম্নলিখিত কমান্ড রান করে আপনার অ্যাপে Firebase SDK যোগ করুন:
$ cd your-project directory $ pod init $ pod 'Firebase'Firebase কনসোল খুলুন এবং আপনার Identity Toolkit প্রোজেক্ট বেছে নিন, যেটি আপনি আগেই ইমপোর্ট করেছেন।
'ওভারভিউ' পৃষ্ঠায়, অ্যাপ যোগ করুন বিকল্পে ক্লিক করুন, তারপর আপনার iOS অ্যাপে Firebase যোগ করুন বিকল্পে ক্লিক করুন। Firebase যোগ করুন ডায়ালগে, আপনার অ্যাপের বান্ডেল আইডি ও App Store আইডি দিন, তারপর অ্যাপ যোগ করুন বিকল্পে ক্লিক করুন। এরপরে
GoogleService-Info.plistকনফিগারেশন ফাইল আপনার কম্পিউটারে ডাউনলোড হয়ে যাবে। আপনার প্রোজেক্টে একাধিক বান্ডেল আইডি থাকলে, প্রতিটি বান্ডেল আইডিকে Firebase কনসোলে কানেক্ট করতে হবে, যাতে সেটির নিজস্বGoogleService-Info.plistফাইল থাকতে পারে।আপনার Xcode প্রোজেক্টের রুটে কনফিগারেশন ফাইল কপি করুন এবং এটি সব টার্গেটে যোগ করুন।
ধাপ ২: Identity Toolkit SDK সরিয়ে দিন
- আপনার অ্যাপের Podfile থেকে
GoogleIdentityToolkitসরিয়ে দিন। pod installকমান্ড রান করান।
ধাপ ৩: আপনার অ্যাপে FirebaseUI যোগ করুন
আপনার অ্যাপে FirebaseUI Auth যোগ করুন।
আপনার অ্যাপে, Identity Toolkit SDK-তে করা কলগুলি FirebaseUI-তে করা কল দিয়ে পরিবর্তন করুন।