JWT ডিকোডার

JWT ডিকোডার

JWT টোকেনটি নিচে বসিয়ে ডিকোড করুন। টুলটি টোকেনের হেডার ও পেলোড পড়ে দেখাবে। টোকেনটি শুধু আপনার ব্রাউজারেই পড়া হয়; এটি কোথাও পাঠানো বা সংরক্ষণ করা হয় না। মনে রাখবেন, এই টুল স্বাক্ষর যাচাই করে না — ডিকোড করা মানেই টোকেনটি আসল, এমন নয়।

ওয়েবসাইটে লগইন করার পর সার্ভার আপনাকে একটি লম্বা টোকেন দেয়, যার নাম JWT। পুরো নাম JSON Web Token। এই টোকেনটি আপনার পরিচয়ের প্রমাণ হিসেবে কাজ করে। প্রতিবার আপনি কোনো পাতা খুললে বা তথ্য চাইলে ব্রাউজার এই টোকেনটি সার্ভারকে পাঠায়। সার্ভার টোকেনটি দেখে বুঝতে পারে আপনি কে, আর আপনাকে আবার লগইন করতে হয় না। ডেভেলপাররা লগইন, API ও মোবাইল অ্যাপে এই টোকেন প্রতিদিন ব্যবহার করেন। তবে টোকেনের ভেতরে কী আছে, তা খালি চোখে বোঝা যায় না। কারণ টোকেনের তথ্য base64url পদ্ধতিতে কোড করা থাকে। এই টুলটি সেই কোড খুলে টোকেনের ভেতরের তথ্য পড়ে দেখায়। টোকেনটি শুধু আপনার ব্রাউজারেই পড়া হয়। এটি কোনো সার্ভারে পাঠানো বা সংরক্ষণ করা হয় না।

কীভাবে ব্যবহার করবেন

  1. আপনার JWT টোকেনটি কপি করুন। টোকেনটি তিনটি অংশ নিয়ে তৈরি, যা দুটি ডট দিয়ে আলাদা করা থাকে।
  2. টোকেনটি উপরের বাক্সে বসান। শুরু বা শেষে ফাঁকা জায়গা থাকলেও সমস্যা নেই, টুলটি নিজে থেকে তা বাদ দেবে।
  3. ডিকোড করুন বোতামে ক্লিক করুন। সঙ্গে সঙ্গে হেডার ও পেলোড সুন্দরভাবে সাজানো JSON আকারে দেখা যাবে।
  4. পেলোডে exp থাকলে মেয়াদ শেষের তারিখ ও মেয়াদ আছে কি না, তা আলাদাভাবে দেখা যাবে।
  5. ফলাফল কপি করুন বোতামে ক্লিক করে হেডার ও পেলোডের লেখা কপি করুন।
  6. নতুন টোকেন দেখতে চাইলে রিসেট করুন বোতামে ক্লিক করে বাক্সটি খালি করুন।

একটি বাস্তব উদাহরণ

উদাহরণ বসান বোতামে ক্লিক করলে এই টোকেনটি বসবে: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c। ডিকোড করলে হেডারে দেখা যাবে {“alg”: “HS256”, “typ”: “JWT”}। এর মানে টোকেনটি HS256 অ্যালগরিদম দিয়ে স্বাক্ষর করা হয়েছে, আর এর ধরন JWT। পেলোডে দেখা যাবে {“sub”: “1234567890”, “name”: “John Doe”, “iat”: 1516239022}। এখানে sub হলো ব্যবহারকারীর আইডি, name হলো নাম, আর iat হলো টোকেন তৈরির সময়। iat-এর মান 1516239022 হলো ১৯৭০ সালের ১ জানুয়ারি থেকে সেকেন্ডের হিসাব। এই সংখ্যাটি ২০১৮ সালের ১৮ জানুয়ারি সকাল ৭টা ৩০ মিনিট ২২ সেকেন্ড, ঢাকা সময়। এই টোকেনে exp নেই, তাই মেয়াদ শেষের তারিখ দেখানো হবে না।

ফলাফল বুঝবেন কীভাবে

হেডার থেকে জানা যায় টোকেনটি কোন অ্যালগরিদমে স্বাক্ষর করা হয়েছে। HS256 মানে HMAC SHA-256, আর RS256 মানে RSA স্বাক্ষর। পেলোডে থাকে দাবি, যাকে ক্লেইম বলে। sub মানে ব্যবহারকারীর পরিচয়, name মানে নাম, iat মানে তৈরির সময়, exp মানে মেয়াদ শেষের সময়। exp থাকলে টুলটি তারিখ দেখাবে এবং মেয়াদ শেষ হয়েছে কি না, তা জানাবে। মনে রাখবেন, পেলোডের তথ্য যে কেউ পড়তে পারে। তাই পেলোডে কখনো পাসওয়ার্ড বা গোপন তথ্য রাখা উচিত নয়। সবচেয়ে গুরুত্বপূর্ণ কথা হলো, ডিকোড করা মানেই টোকেনটি আসল, এমন নয়। যে কেউ এমন একটি টোকেন বানাতে পারে, যা দেখতে আসল মনে হবে। আসল কি না, তা শুধু স্বাক্ষর যাচাই করে বলা যায়। আর স্বাক্ষর যাচাই করতে সার্ভারের গোপন কী দরকার।

সাধারণ ভুল

প্রথম ভুল হলো দুটি ডটের বদলে পুরো টোকেন না বসানো। শুধু প্রথম বা মাঝের অংশ বসালে টুলটি ভুল বার্তা দেখাবে। দ্বিতীয় ভুল হলো টোকেনের আগে বা পরে “Bearer” শব্দটি বসিয়ে দেওয়া। শুধু টোকেনটি বসান, Bearer শব্দটি বাদ দিন। তৃতীয় ভুল হলো ডিকোড করা পেলোড দেখে টোকেনটিকে আসল বলে ধরে নেওয়া। ডিকোড শুধু তথ্য পড়ে, যাচাই করে না। চতুর্থ ভুল হলো নিজের আসল লগইন টোকেন অন্যের সঙ্গে ভাগ করা বা স্ক্রিনশটে দেখানো। টোকেন হাতে পেলে যে কেউ আপনার অ্যাকাউন্টে ঢুকতে পারে। পঞ্চম ভুল হলো মেয়াদ শেষ হওয়া টোকেন ব্যবহার করার চেষ্টা করা। exp পার হয়ে গেলে সার্ভার টোকেনটি নেবে না।

সতর্কতা

এই টুলটি স্বাক্ষর যাচাই করে না, তাই এখানে দেখা তথ্য দিয়ে লগইনের সিদ্ধান্ত নেবেন না। আসল টোকেন অন্য কারো সঙ্গে ভাগ করবেন না, এমনকি সাহায্যের জন্যও নয়। পরীক্ষার জন্য সবসময় উদাহরণ টোকেন বা মেয়াদ শেষ হওয়া টোকেন ব্যবহার করুন। টোকেন ফাঁস হয়ে গেলে সঙ্গে সঙ্গে লগআউট করে নতুন টোকেন নিন।

FAQ

প্রশ্ন: JWT ডিকোডার কি টোকেনের স্বাক্ষর যাচাই করে?
উত্তর: না, এই টুল শুধু টোকেনের হেডার ও পেলোড পড়ে দেখায়। স্বাক্ষর যাচাই করতে গোপন কী দরকার, যা এই টুল নেয় না। তাই ডিকোড করা মানেই টোকেন আসল, এমন নয়।

প্রশ্ন: ডিকোড করা পেলোড কি সবাই দেখতে পারে?
উত্তর: হ্যাঁ, JWT-এর পেলোড শুধু base64url দিয়ে কোড করা থাকে, এনক্রিপ্ট করা থাকে না। যে কেউ টোকেনটি পেলে পেলোড পড়তে পারে। তাই পেলোডে পাসওয়ার্ড বা গোপন তথ্য রাখবেন না।

প্রশ্ন: exp মানে কী?
উত্তর: exp হলো টোকেনের মেয়াদ শেষের সময়, যা ১৯৭০ সালের ১ জানুয়ারি থেকে সেকেন্ডে মাপা হয়। exp পার হয়ে গেলে সার্ভার টোকেনটি গ্রহণ করবে না।

প্রশ্ন: টোকেন ডিকোড করতে না পারলে কী করব?
উত্তর: দেখুন টোকেনে ঠিক দুটি ডট আছে কি না, আর Bearer শব্দটি বাদ দিয়েছেন কি না। টোকেনটি আবার কপি করে বসান। তবুও না হলে টোকেনটি হয়তো JWT নয়।