ডেভেলপার হিসেবে আমরা অনেকেই JWT (JSON Web Token) ব্যবহার করি। কিন্তু ইন্টারভিউতে বা কলিগদের সাথে আড্ডায় একটা প্রশ্ন প্রায়ই আসে— “ভাই, শুধু Access Token দিয়ে কাজ চললে আবার Refresh Token কেন লাগবে? বারবার রিকোয়েস্ট পাঠালে কি সার্ভারের এনার্জি লস হয় না?” 🔋
চলুন একটা ছোট গল্পের মাধ্যমে বিষয়টা ক্লিয়ার করি।
আপনি অফিসে ঢোকার পর সিকিউরিটি আপনাকে একটা স্টিকার দিল। এর মেয়াদ মাত্র ১০ মিনিট। আপনি যতবার কফি খেতে বাইরে যাবেন আর ভেতরে ঢুকবেন, গার্ড শুধু স্টিকারটা দেখবে আর আপনাকে ঢুকতে দিবে। সে আপনার আইডি কার্ড চেক করবে না, ডাটাবেজও খুলবে না। এটাই হলো Stateless সুবিধা—সার্ভারের ওপর চাপ কম।
১০ মিনিট পর স্টিকারের আঠা নষ্ট হয়ে গেল। এখন কি আপনি আবার মেইন গেটে গিয়ে লম্বা লাইনে দাঁড়িয়ে লগইন করবেন? একদম না! আপনি পকেট থেকে আপনার আসল আইডি কার্ড (Refresh Token) গার্ডকে দেখালেন। গার্ড এক সেকেন্ডে সেটা ভেরিফাই করে আপনাকে নতুন একটা ১০ মিনিটের স্টিকার দিয়ে দিল।
সার্ভারের এনার্জি একটু খরচ হলেও, সিস্টেমের নিরাপত্তা আর ইউজারের আরাম—এই দুইটার ব্যালেন্স করতেই আমরা Access ও Refresh Token-এর এই ‘জুটি’ ব্যবহার করি। 🤝