JWT ডিকোডার
যেকোনো JSON Web Token ব্রাউজারে ডিকোড করুন: হেডার ও পেলোড দেখুন, exp, iat ও nbf আপনার টাইম জোনের আসল তারিখে, আর টোকেনের মেয়াদ শেষ কি না জানুন।
সারসংক্ষেপ
হেডার
পেলোড (ক্লেইম)
টোকেন ও সিগনেচার
কোথাও না পাঠিয়েই যেকোনো JWT পড়ুন
একটি JSON Web Token পেস্ট করুন, ডিকোডার সেটিকে তিন ভাগে ভাগ করবে: হেডার (কোন অ্যালগরিদমে সই করা), পেলোড (ক্লেইম: ব্যবহারকারী কে, কী কী অ্যাক্সেস আছে এবং টোকেনের মেয়াদ কখন শেষ) আর সিগনেচার। JSON সাজিয়ে দেখানো হয়, তাই এক নজরেই পড়া যায়।
সময়ের ক্লেইমগুলো আসল তারিখে বদলে যায়। exp, iat ও nbf আপনার টাইম জোনে, UTC-তে এবং “২০ মিনিট পরে” বা “৩ দিন আগে” আকারে দেখানো হয়, আর অবস্থা সঙ্গে সঙ্গে জানায় টোকেনটি এখনো বৈধ, মেয়াদোত্তীর্ণ নাকি এখনো বৈধ হয়নি।
টোকেন প্রায়ই আসল অ্যাকাউন্টে প্রবেশাধিকার দেয়, তাই পুরো ডিকোডিং আপনার ব্রাউজারেই হয়। টোকেন কখনো আমাদের সার্ভারে আপলোড, লগ বা সংরক্ষণ করা হয় না। চ্যাটবটে বা সার্ভারে পাঠায় এমন সাইটে পেস্ট করার চেয়ে এটি নিরাপদ।
কীভাবে JWT ডিকোড করবেন
- আপনার অ্যাপ,
Authorizationহেডার, কুকি বা ব্রাউজারের ডেভেলপার টুল থেকে টোকেন কপি করুন। - বক্সে পেস্ট করুন।
Bearer, উদ্ধৃতিচিহ্ন, স্পেস ও লাইন ব্রেক নিজে থেকেই সরে যায়। - সারসংক্ষেপ পড়ুন: অবস্থা, অ্যালগরিদম, ইস্যুকারী, বিষয়, অডিয়েন্স এবং ইস্যু ও মেয়াদ শেষের সঠিক সময়।
- কপি বোতাম দিয়ে সাজানো হেডার বা পেলোড JSON বাগ রিপোর্ট বা নোটে নিয়ে যান।
সাধারণ ক্লেইমগুলোর অর্থ
exp(expiration time): এই সময়ের পরে টোকেন প্রত্যাখ্যান করতে হবে।iat(issued at): টোকেন কখন তৈরি হয়েছে।nbf(not before): এই সময়ের আগে টোকেন গ্রহণ করা যাবে না।iss(issuer): টোকেন কে তৈরি করেছে, প্রায়ই আপনার লগইন সার্ভারের URL।sub(subject): টোকেনটি কার সম্পর্কে, সাধারণত একটি ইউজার আইডি।aud(audience): টোকেনটি কোন অ্যাপ বা API-এর জন্য।algওkid(হেডারে): HS256 বা RS256-এর মতো সই করার অ্যালগরিদম এবং সই করা কী-এর আইডি।
JWT-এর তারিখগুলো NumericDate মান: ১ জানুয়ারি ১৯৭০ UTC থেকে পেরোনো সেকেন্ডের সংখ্যা। ডিকোডার নিজেই এগুলো রূপান্তর করে, তাই আলাদা টাইমস্ট্যাম্প কনভার্টার লাগে না।
ডিবাগিং টিপস
- লগইনের ঠিক পরে API যদি 401 দেয়, আগে
expওnbfদেখুন। কয়েক মিনিট আগে বা পিছিয়ে চলা সার্ভারের ঘড়ি একটি সাধারণ কারণ; বেশিরভাগ লাইব্রেরি সামান্য ছাড় দেয়। - হাজার হাজার বছর পরের তারিখ মানে মানটি সেকেন্ডের বদলে মিলিসেকেন্ডে লেখা হয়েছে। এমন হলে ডিকোডার আপনাকে সতর্ক করে।
audওissআপনার API যা আশা করে তার সঙ্গে মিলিয়ে দেখুন। অন্য অ্যাপ বা এনভায়রনমেন্টের (প্রোডাকশনের বদলে স্টেজিং) জন্য ইস্যু করা টোকেন “অবৈধ টোকেন” ত্রুটির একটি সাধারণ কারণ।- হেডারে
alg-এর মানnoneহলে টোকেনে সই নেই। প্রোডাকশনে এমন টোকেন কখনো গ্রহণ করবেন না।
সীমাবদ্ধতা ও জানার বিষয়
- ডিকোড করা মানে যাচাই করা নয়। যে কেউ যেকোনো ক্লেইম দিয়ে টোকেন বানাতে পারে; শুধু আপনার সার্ভারে সঠিক কী দিয়ে সিগনেচার যাচাই করলেই প্রমাণ হয় এটি আসল। এই টুল সিগনেচার যাচাই করে না।
- সাধারণ JWT-এর পেলোড শুধু এনকোড করা, এনক্রিপ্ট করা নয়। টোকেন যার কাছে আছে সে-ই এটি পড়তে পারে, তাই ক্লেইমে কখনো পাসওয়ার্ড বা গোপন তথ্য রাখবেন না।
- এনক্রিপ্টেড টোকেন (JWE, পাঁচটি অংশ) কী ছাড়া পড়া যায় না, তাই শুধু হেডার দেখানো হয়।
- সংখ্যাগুলো টোকেনে যেমন আছে ঠিক তেমনই দেখানো হয়, তাই লম্বা সংখ্যার আইডি কখনো রাউন্ড হয় না।
প্রায়ই জিজ্ঞাসিত প্রশ্ন
এখানে আসল টোকেন পেস্ট করা কি নিরাপদ?
হ্যাঁ। ডিকোডিং আপনার ব্রাউজারে JavaScript দিয়ে হয় এবং টোকেন কখনো আমাদের সার্ভারে পাঠানো হয় না। তবুও সক্রিয় টোকেনকে পাসওয়ার্ডের মতো সামলান: স্ক্রিনশট বা চ্যাটে শেয়ার করবেন না, আর মেয়াদ শেষ হতে দিন।
এই টুল কি বলতে পারে টোকেন বৈধ কি না?
তারিখ দেখে এটি জানায় টোকেনের মেয়াদ শেষ হয়েছে কি না বা এখনো বৈধ হয়নি কি না। সিগনেচার আসল কি না তা বলতে পারে না, কারণ তার জন্য সেই সিক্রেট বা পাবলিক কী লাগে যা শুধু আপনার সার্ভারের কাছে থাকা উচিত।
সদ্য পাওয়া টোকেন কেন মেয়াদোত্তীর্ণ দেখাচ্ছে?
যে সার্ভার টোকেন ইস্যু করেছে তার ঘড়ি দেখুন এবং নিশ্চিত হোন exp সেকেন্ডে আছে, মিলিসেকেন্ডে নয়। iat-ও যদি কয়েক ঘণ্টা পিছিয়ে থাকে, তাহলে সম্ভবত সার্ভারের ঘড়ি ভুল।
JWT ডিকোডার আর Base64 ডিকোডারের পার্থক্য কী?
JWT হলো ডট দিয়ে জোড়া তিনটি Base64URL-এনকোড করা অংশ। Base64 ডিকোডার একবারে একটি অংশ পড়ে, কিন্তু JWT ডিকোডার নিজেই টোকেন ভাগ করে, URL-নিরাপদ অক্ষর ও অনুপস্থিত প্যাডিং সামলায় এবং তারিখকে পড়ার মতো সময়ে রূপান্তর করে।
এটি কি অফলাইনে কাজ করে?
হ্যাঁ। পেজ লোড হয়ে গেলে ইন্টারনেট বন্ধ করেও টোকেন ডিকোড করা যায়।
সম্পর্কিত টুল
- Base64 ডিকোডার: Base64 স্ট্রিং সাথে সাথে পড়ার মতো লেখায় ফেরত আনুন, বাংলাসহ। Auth হেডার, JWT ও API পেলোড দেখুন। ফ্রি, সাইন-আপ লাগে না।
- JSON ভ্যালিডেটর ও বিউটিফায়ার: JSON সঠিক কিনা যাচাই করুন এবং এক লাইনের কমপ্রেসড JSON কে সুন্দর করে সাজান। ফ্রি JSON formatter, ব্রাউজারেই চলে, সাইন-আপ লাগে না।
- URL ডিকোডার: %E0%A6%AC%E0%A6%BE এর মতো এনকোড করা লিংক সাথে সাথে পড়ার মতো বাংলা লেখায় রূপান্তর করুন। ফ্রি URL decoder, ব্রাউজারেই চলে, সাইন-আপ লাগে না।
- Base64 এনকোডার: যেকোনো লেখা সাথে সাথে Base64 এ রূপান্তর করুন, UTF-8 এ বাংলাসহ। Data URI, Basic Auth ও API এর জন্য। ফ্রি, সাইন-আপ লাগে না।
অনুরূপ টুল
Base64 স্ট্রিং সাথে সাথে পড়ার মতো লেখায় ফেরত আনুন, বাংলাসহ। Auth হেডার, JWT ও API পেলোড দেখুন। ফ্রি, সাইন-আপ লাগে না।
JSON সঠিক কিনা যাচাই করুন এবং এক লাইনের কমপ্রেসড JSON কে সুন্দর করে সাজান। ফ্রি JSON formatter, ব্রাউজারেই চলে, সাইন-আপ লাগে না।
%E0%A6%AC%E0%A6%BE এর মতো এনকোড করা লিংক সাথে সাথে পড়ার মতো বাংলা লেখায় রূপান্তর করুন। ফ্রি URL decoder, ব্রাউজারেই চলে, সাইন-আপ লাগে না।
জনপ্রিয় ফ্রি টুল
এক ক্লিকে শক্তিশালী র্যান্ডম পাসওয়ার্ড তৈরি করুন। দৈর্ঘ্য, বড়-ছোট অক্ষর, সংখ্যা ও চিহ্ন বেছে নিন। ফ্রি, সাইন-আপ লাগে না, ব্রাউজারেই চলে।
ইংরেজি লেখা এক ক্লিকে বড় হাতের, ছোট হাতের, Title Case, camelCase বা snake_case এ বদলান। প্রোগ্রামার ও লেখকদের ফ্রি টুল।
যেকোনো লেখা বা HTML কোড থেকে সব ইমেইল ঠিকানা এক সেকেন্ডে বের করুন, মোট সংখ্যাসহ। ফ্রি টুল, সাইন-আপ লাগে না।
যেকোনো ডোমেইনের DNS রেকর্ড দেখুন: A, AAAA, CNAME, MX, NS, TXT ও SOA। ইমেইল, SPF ও নেমসার্ভার সেটিং যাচাই করুন। ফ্রি, সাইন-আপ লাগে না।
লাইনকে স্পেসে, সেমিকোলনকে | এ, বা ডটকে হাইফেনে এক সেকেন্ডে বদলান। তালিকা সাজানোর ফ্রি টুল, সাইন-আপ লাগে না।
নম্বর সেভ না করেই চ্যাট খোলে এমন wa.me হোয়াটসঅ্যাপ লিংক বানান, তৈরি মেসেজসহ। ফেসবুক পেজ, শপ ও বিজ্ঞাপনের জন্য। ফ্রি।