🎥 উপরে পুরো ভিডিওটি দেখে নিতে পারেন — অথবা নিচে পড়ে নিন। দুটোতেই একই জিনিস সহজ করে বোঝানো হয়েছে।
একটা প্রশ্ন দিয়ে শুরু করি: একটা অ্যাপ কীভাবে বোঝে যে এটা সত্যিই আপনি — অন্য কেউ আপনার ছদ্মবেশে নয়? প্রতিটি লগইন, প্রতিটি পেমেন্ট, প্রতিটি ব্যক্তিগত মেসেজের পেছনে এই জাদুটাই কাজ করে। একে বলে authentication। আজ এটা এত সহজ করে বোঝাব যে আর কখনো ভুলবেন না — আর পুরোটা বুঝব একটাই উদাহরণ দিয়ে: হোটেলে চেক-ইন।
হোটেলের গল্প
আপনি হোটেলের ফ্রন্ট ডেস্কে গেলেন। কিছু দেওয়ার আগে তারা আপনার ID দেখতে চায়। আপনি দেখালেন, তারা যাচাই করল, নিশ্চিত হলো — হ্যাঁ, এটা সত্যিই আপনি। এই মুহূর্তটা, অর্থাৎ আপনি কে তা প্রমাণ করা — এটাই authentication।
তারপর রিসেপশনিস্ট আপনাকে একটা key card দেয়। এখন থেকে প্রতিটা দরজায় আর ID দেখাতে হয় না — শুধু কার্ডটা ট্যাপ করেন। এটা আপনার রুম, জিম, পুল খোলে। কিন্তু মজার ব্যাপার: এটা অন্য অতিথির রুম খোলে না, আর স্টাফ অফিস তো একদমই না। কার্ডটা জানে আপনি ঠিক কোথায় যেতে পারবেন। এই অংশটা — আপনি কী করতে পারবেন — এটাই authorization।
🏨 মূল পার্থক্য
Authentication = "আপনি কে?" (ID যাচাই)। Authorization = "আপনি কী করতে পারবেন?" (key card কোন দরজা খোলে)। প্রথমে কে তা প্রমাণ, তারপর কী করার অনুমতি।API একদম এভাবেই কাজ করে। আপনার অ্যাপ যখন server-এর সাথে কথা বলে, server-কে আগে জানতে হয় কে অনুরোধ করছে — আসল, লগইন করা ইউজার, নাকি অচেনা কেউ? এটা authentication। আর জানার পর সে দেখে আপনার কী অ্যাক্সেসের অনুমতি আছে — এটা authorization। নিজের ব্যাংকিং অ্যাপের কথা ভাবুন: লগইন করা (authentication), কিন্তু লগইন করেও শুধু আপনার অ্যাকাউন্ট দেখতে পান, অন্য কারো না (authorization)।
প্রমাণটা বহন করেন কীভাবে: API key আর token
API key — জিমের মেম্বারশিপ কার্ড
একটা API key হলো জিমের মেম্বারশিপ কার্ডের মতো। সাইন আপ করলে আপনাকে একটা ইউনিক নম্বরের কার্ড দেওয়া হয়; প্রতিবার ঢোকার সময় সেটা স্ক্যান করেন, সিস্টেম সাথে সাথে চিনে ফেলে। API key হলো একটা লম্বা, গোপন অক্ষর-সংখ্যার স্ট্রিং যা অ্যাপ প্রতিটি request-এর সাথে পাঠায়, যাতে server বোঝে কোন অ্যাপ ডাকছে। আবহাওয়া বা ম্যাপ ডেটা চান? সাইন আপ করে একটা API key নিন, প্রতিবার সেটা পাঠান — একই কার্ড, প্রতিবার।
Token — হোটেলের key card
একটা token ঠিক সেই হোটেল key card-এর মতো। পার্থক্যটা গুরুত্বপূর্ণ: মেম্বারশিপ কার্ড অনেকটা স্থায়ী, কিন্তু হোটেল কার্ড সাময়িক — চেক-ইনের পর পান, থাকার সময় কাজ করে, চেক-আউট করলেই বন্ধ। লগইন token-ও তাই: পাসওয়ার্ড দিয়ে লগইন করলে server একবার যাচাই করে (ফ্রন্ট ডেস্কের ID চেক), ঠিক থাকলে অ্যাপকে একটা token দেয় — আপনার ডিজিটাল key card। এরপর অ্যাপ আর পাসওয়ার্ড পাঠায় না, শুধু প্রতিটি request-এ token জুড়ে দেয়। আর নিরাপত্তার জন্য token কিছুক্ষণ পর expire হয় — এ কারণেই ব্যাংকিং অ্যাপ কিছুক্ষণ পর লগআউট করে দেয়।
"Bearer" শব্দের মানে "এই token-এর বাহক" — অ্যাপ বলছে, "এই নিন আমার key card, ঢুকতে দিন।"
401 বনাম 403 — সবাই যা গুলিয়ে ফেলে
হোটেলের উদাহরণেই দুটো পরিষ্কার:
401 Unauthorized— key card নিচে ফেলে এসে খালি হাতে দরজায় ট্যাপ করলেন; হোটেল এখন জানেই না আপনি কে। মানে: "তুমি কে জানি না — আগে লগইন করো।" token না পাঠালে বা token expire হলে এটা দেখবেন। সমাধান: আবার লগইন করে নতুন token নিন।403 Forbidden— আপনার কার্ড আছে, কাজও করছে, কিন্তু স্টাফ-অফিসে ট্যাপ করলেন; বাতি লাল। হোটেল জানে আপনি কে, তবু অনুমতি নেই। মানে: "তোমাকে চিনি, কিন্তু এখানে ঢোকার অনুমতি নেই।" আবার লগইন করেও লাভ নেই — সমস্যা "কে" তা নয়, "কী করার অনুমতি" তা।
সংক্ষেপে: 401 = "তুমি কে?" (authentication সমস্যা), 403 = "চিনি, তবু না" (authorization সমস্যা)।
১ নম্বর নিরাপত্তা নিয়ম
⚠️ কখনো key শেয়ার করবেন না
আপনার API key আর token ঠিক হোটেল key card বা বাড়ির চাবির মতো। অচেনা কেউ পেলে আপনার ছদ্মবেশে ঢুকে যেতে পারে। তাই key কখনো শেয়ার করবেন না, পাবলিক কোডে (যেমন GitHub-এ) পেস্ট করবেন না। ডেভেলপাররা ভুল করে key আপলোড করে পরে বিশাল বিল দেখেছেন — কারণ কেউ সেটা খুঁজে পেয়ে ব্যবহার করেছে। key-কে টাকার মতো গোপন রাখুন।নতুনদের ২টি ভুল ধারণা
- ❌ "Authentication আর authorization একই জিনিস।" না — প্রথমটা "কে আপনি", দ্বিতীয়টা "কী করতে পারবেন"। আগে authentication, তারপর authorization।
- ❌ "401 দেখলে আমি ব্লকড।" না — 401 মানে শুধু "এখনও লগইন করোনি / token নেই"। লগইন করলেই ঠিক হয়ে যায়। আসল ব্লক হলো 403।
সংক্ষেপে — আজকের মূল কথা
- Authentication = কে আপনি (ID দেখানো)। Authorization = কী করতে পারবেন (key card)।
- API key = মেম্বারশিপ কার্ড (স্থায়ী)। Token = হোটেল key card (expire হয়)।
- Token যায় request-এর header-এ:
Authorization: Bearer ... - 401 = "লগইন করো" · 403 = "অনুমতি নেই"।
- Key কখনো শেয়ার করবেন না — টাকার মতো গোপন রাখুন।
প্রায়ই জিজ্ঞেস করা প্রশ্ন (FAQ)
API key আর token — কোনটা কখন?
API key সাধারণত অ্যাপ/ডেভেলপারকে চেনাতে (যেমন কোনো পাবলিক সার্ভিস ব্যবহার), আর token ব্যবহার হয় নির্দিষ্ট ইউজার লগইনের পর — যা সাময়িক ও নিরাপদ।
Token expire হলে কী করব?
আবার লগইন করলে (বা refresh token থাকলে) নতুন token পাওয়া যায়। এ কারণেই অ্যাপ মাঝে মাঝে আবার লগইন চায় — এটা নিরাপত্তার অংশ।
পরবর্তী ধাপ
এখন আপনি জানেন API কীভাবে চেনে আপনি কে আর কী করতে পারবেন। পরের পর্বে আমরা দেখব API-র বিভিন্ন ধরন — REST সহ আরও কিছু — আর কোনটার বিশেষত্ব কী, একদম সহজ ভাষায়।
📬 পরের পর্ব মিস করতে চান না?
সম্পূর্ণ ফ্রি API কোর্সটি দেখুন, আর নতুন পর্বের আপডেট পেতে সাবস্ক্রাইব করুন।
▶️ YouTube-এ Subscribe 📚 সম্পূর্ণ API কোর্স📧 প্রশ্ন আছে? hello@shadhinpath.com