ভাষা বেছে নিন

অনলাইন JWT ডিকোডার টুল

ব্রাউজারেই আপনার JSON Web Token (JWT) ডিকোড করুন। হেডার, পেলোড এবং এক্সপায়ারি টাইমস্ট্যাম্প (exp, iat) পড়ুন খুব সহজেই।

Mehmet Demiray (মেহমেত দেমিরায়) প্রকাশিত আপডেট হয়েছে
শেয়ার করুন
exp, iat এবং nbf ক্লেইমগুলিকে পাঠযোগ্য তারিখে রূপান্তর করুন

JWT-এর গঠনতন্ত্র: হেডার, পেলোড এবং সিগনেচার

JWT বা JSON Web Token মূলত তিনটি অংশে বিভক্ত থাকে। এই অংশগুলো হলো হেডার (Header), পেলোড (Payload) এবং সিগনেচার (Signature)। এই তিনটি অংশ বিন্দুর মাধ্যমে একে অপরের সাথে যুক্ত থেকে একটি সম্পূর্ণ টোকেন তৈরি করে। হেডার অংশে সাধারণত টোকেনের ধরন এবং ব্যবহৃত এনক্রিপশন অ্যালগরিদম সম্পর্কে তথ্য থাকে। পেলোড অংশে থাকে আসল ডেটা বা ক্লেইমস, যেমন ব্যবহারকারীর আইডি বা পারমিশন লেভেল। এই দুটি অংশের ডেটা Base64url ফরম্যাটে এনকোড করা থাকে। আপনি চাইলে Base64 ডিকোডিং পদ্ধতি ব্যবহার করে এগুলোকে সাধারণ টেক্সটে রূপান্তর করতে পারেন। তবে আমাদের JWT ডিকোডার টুলটি এই কাজটি স্বয়ংক্রিয়ভাবে করে দেয়। সিগনেচার অংশটি তৈরি হয় হেডার, পেলোড এবং একটি গোপন কি (Secret Key) ব্যবহার করে, যা ডেটার নিরাপত্তা নিশ্চিত করে এবং ডেটা মাঝপথে পরিবর্তিত হয়েছে কি না তা যাচাই করতে সাহায্য করে।

JWT পেলোডের সাধারণ ক্লেইমসমূহ

পেলোড অংশে থাকা ডেটাগুলোকে মূলত ক্লেইম (Claim) বলা হয়। এগুলো সাধারণত JSON ফরম্যাটে থাকে। একটি টোকেন ডিকোড করার পর JSON ডেটা সুন্দরভাবে সাজিয়ে দেখতে আমাদের টুলটি সাহায্য করে। পেলোডে কিছু সাধারণ ক্লেইম থাকে। iss বা Issuer নির্দেশ করে কে টোকেনটি ইস্যু করেছে। sub বা Subject হলো যার জন্য টোকেনটি তৈরি করা হয়েছে, যেমন ব্যবহারকারীর প্রোফাইল আইডি। aud বা Audience বোঝায় টোকেনটি কোন সিস্টেম বা সার্ভিসের জন্য তৈরি করা হয়েছে। সময় নির্দেশক কিছু গুরুত্বপূর্ণ ক্লেইমও রয়েছে। exp বা Expiration Time হলো টোকেনের মেয়াদ শেষ হওয়ার সময়। iat বা Issued At নির্দেশ করে টোকেনটি কখন তৈরি করা হয়েছে। সময় নির্দেশক ক্লেইমগুলো সাধারণত ইউনিক্স টাইমস্ট্যাম্প হিসেবে থাকে। উদাহরণস্বরূপ, exp এর মান যদি ১,৭৩,৫৬,৮৯,৬০০ হয়, তবে JWT ডিকোডার টুলটি এটিকে মানুষের পড়ার উপযোগী ১ জানুয়ারি, ২০২৫ তারিখে রূপান্তর করে দেখায়।

টোকেন ডিকোডিং এবং ভেরিফাই করার মধ্যে পার্থক্য

অনেকেই ডিকোডিং এবং ভেরিফাই করার বিষয়টি গুলিয়ে ফেলেন। JWT ডিকোডার ব্যবহার করে খুব সহজেই টোকেনের ভেতরের তথ্য বা পেলোড পড়ে ফেলা যায়, কারণ এগুলো কেবল Base64url দিয়ে এনকোড করা থাকে। এর জন্য কোনো গোপন পাসওয়ার্ড বা কি প্রয়োজন হয় না। কিন্তু টোকেনটি আসল কি না, বা মাঝপথে কেউ এর ডেটা পরিবর্তন করেছে কি না, তা নিশ্চিত হতে সিগনেচার ভেরিফাই করতে হয়। ভেরিফাই করার জন্য সার্ভারের কাছে থাকা গোপন কি-এর প্রয়োজন হয়। আমাদের টুলটি মূলত টোকেন ডিকোড করে এর ভেতরের তথ্যগুলো দেখায়, কিন্তু এটি সিগনেচার ভেরিফাই করে না। শুধুমাত্র ডিকোড করা তথ্যের ওপর ভিত্তি করে কোনো টোকেনকে পুরোপুরি নিরাপদ বা বিশ্বস্ত বলে ধরে নেওয়া উচিত নয়। সার্ভার সাইডে অবশ্যই টোকেনের সিগনেচার যাচাই করা বাধ্যতামূলক।

অথেনটিকেশন এবং লগইন সমস্যা সমাধানে JWT ডিকোডার

ওয়েব বা মোবাইল অ্যাপ্লিকেশনে কাজ করার সময় ডেভেলপাররা প্রায়ই লগইন বা API অথেনটিকেশন নিয়ে সমস্যায় পড়েন। এ ধরনের সমস্যা ডিবাগ করতে JWT ডিকোডার অত্যন্ত কার্যকর। যদি কোনো ব্যবহারকারী লগইন করতে না পারেন, তবে টোকেনটি ডিকোড করে আপনি দেখতে পারেন exp বা মেয়াদোত্তীর্ণের সময় পার হয়ে গেছে কি না। অনেক সময় সার্ভার এবং ক্লায়েন্টের ঘড়ির সময়ের মধ্যে সামান্য পার্থক্যের কারণে nbf বা Not Before ক্লেইমটি কাজ করে না এবং টোকেনটি সাময়িকভাবে অকার্যকর দেখায়। এছাড়া aud বা অডিয়েন্স ফিল্ডে ভুল সার্ভিসের নাম থাকলে API রিকোয়েস্ট বাতিল হয়ে যেতে পারে। এই টুলটি ব্যবহার করে ডেভেলপাররা খুব সহজেই এই ধরনের সাধারণ ত্রুটিগুলো খুঁজে বের করতে এবং দ্রুত সমাধান করতে পারেন।

কিভাবে JWT ডিকোডার ব্যবহার করবেন?

JWT ডিকোডার ব্যবহার করা অত্যন্ত সহজ এবং এটি তাৎক্ষণিকভাবে কাজ করে। টোকেন থেকে তথ্য বের করার জন্য নির্দিষ্ট কিছু ধাপ অনুসরণ করতে হয়। প্রথমে আপনার অ্যাপ্লিকেশন বা ব্রাউজারের নেটওয়ার্ক ট্যাব থেকে সম্পূর্ণ JWT স্ট্রিংটি কপি করুন। এটি সাধারণত eyJ দিয়ে শুরু হয়। এরপর কপি করা টোকেনটি আমাদের টুলের ইনপুট বক্সে পেস্ট করুন। পেস্ট করার সাথে সাথেই টুলটি স্বয়ংক্রিয়ভাবে টোকেনটিকে ভেঙে হেডার এবং পেলোড অংশে ভাগ করে ফেলবে। আপনি চাইলে প্রতিটি অংশের পাশে থাকা কপি বাটনে ক্লিক করে ডিকোড করা JSON ডেটা ক্লিপবোর্ডে সংরক্ষণ করতে পারবেন। এই প্রক্রিয়ায় কোনো সার্ভার রিকোয়েস্ট পাঠানো হয় না, তাই পুরো কাজটি দ্রুত এবং নির্বিঘ্নে সম্পন্ন হয়।

নিরাপত্তা ও প্রাইভেসি: ব্রাউজারে টোকেন ডিকোড করা

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

যেগুলোর উত্তর আমরা সবচেয়ে বেশি দিই।

JWT ডিকোড করা এবং ভেরিফাই করা কি একই কাজ?

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

আমার টোকেনের মেয়াদ কখন শেষ হবে তা কীভাবে বুঝব?

টোকেনটি ডিকোড করার পর পেলোড অংশে 'exp' নামের একটি ফিল্ড দেখতে পাবেন। সাধারণত এটি ইউনিক্স টাইমস্ট্যাম্প ফরম্যাটে থাকে। আমাদের টুলটি স্বয়ংক্রিয়ভাবে এই সময়টিকে আপনার ব্রাউজারের টাইমজোনে পরিবর্তন করে দেখায়, ফলে খুব সহজেই আপনি মেয়াদ শেষের সঠিক সময়টি জানতে পারবেন।

লাইভ বা প্রোডাকশন টোকেন এখানে পেস্ট করা কি নিরাপদ?

হ্যাঁ, এটি নিরাপদ। আমাদের টুলটি সরাসরি আপনার ব্রাউজারে কাজ করে এবং কোনো ডেটা বাইরের কোনো সার্ভারে পাঠায় না। তবে নিরাপত্তার সেরা চর্চা হিসেবে প্রোডাকশন টোকেন পাবলিক টুলে ব্যবহার করার সময় সবসময় সতর্ক থাকা উচিত।

আমার টোকেনটি ডিকোড হচ্ছে না কেন?

টোকেন ডিকোড না হওয়ার প্রধান কারণ হতে পারে ভুল ফরম্যাট। একটি সঠিক টোকেনে তিনটি অংশ থাকে যা ডট দ্বারা যুক্ত থাকে। যদি কোনো অংশ বাদ পড়ে বা টোকেনটি কপি করতে ভুল হয়, তবে এটি কাজ করবে না। টোকেনটি ঠিকভাবে এনকোড করা আছে কি না, তা নিশ্চিত করতে আপনি Base64 ডিকোড করে দেখতে পারেন।

সাধারণ JSON ফরম্যাটারের সাথে এর পার্থক্য কী?

একটি JSON ফরম্যাটার মূলত কাঁচা JSON ডেটাকে সুন্দরভাবে সাজিয়ে দেখায়। কিন্তু JWT ডিকোডার প্রথমে আপনার এনকোড করা টোকেনটিকে ডিকোড করে এবং এরপর ভেতরের ডেটাগুলোকে সাজিয়ে প্রদর্শন করে। এটি নির্দিষ্টভাবে টোকেনের গঠন অনুযায়ী তৈরি করা হয়েছে।

আমি কি টোকেনের তথ্য পরিবর্তন করে আবার এনকোড করতে পারব?

এই টুলটি শুধুমাত্র ডিকোড করার জন্য তৈরি করা হয়েছে। টোকেনের ডেটা পরিবর্তন করে নতুন টোকেন তৈরি করতে হলে আপনাকে সিক্রেট কি ব্যবহার করে সিগনেচার জেনারেট করতে হবে, যা এই টুলের আওতাভুক্ত নয়।

টোকেনের ভেতরে থাকা 'iat' এবং 'nbf' বলতে কী বোঝায়?

'iat' নির্দেশ করে টোকেনটি কখন তৈরি বা ইস্যু করা হয়েছে। অন্যদিকে 'nbf' বোঝায় কোন নির্দিষ্ট সময়ের আগে টোকেনটি ব্যবহার করা যাবে না। আমাদের টুল এই টাইমস্ট্যাম্পগুলোকেও সাধারণ তারিখ ও সময়ে রূপান্তর করে দেখায়, যাতে ডেভেলপারদের ডিবাগ করতে সুবিধা হয়।