एक JWT डिकोडर क्या दिखाता है
A JSON Web Token, या JWT, एक संकुचित टोकन प्रारूप है जो सामान्यतः authentication, authorization, API सत्रों और identity वर्कफ़्लो में उपयोग होता है। एक JWT आमतौर पर तीन डॉट-सेपरेटेड भागों में होता है: एक header, एक payload, और एक signature। header और payload base64url-encoded JSON होते हैं, जिसका अर्थ है कि उन्हें किसी सीक्रेट की आवश्यकता के बिना डिकोड करके पढ़ा जा सकता है।
यह JWT डिकोडर निरीक्षण पर केंद्रित है। यह header और payload को फॉर्मेट करता है, सामान्य claims निकालता है, raw segments दिखाता है, और समय-आधारित claims जैसे iat, nbf, और exp। यह लॉगिन फ्लो, API कॉल, टेस्ट वातावरण, OAuth एकीकरण, या टोकन लाइफ़टाइम समस्याओं को डिबग करते समय उपयोगी होता है।
- header से टोकन का algorithm और type पढ़ें।
- issuer, subject, audience, और कस्टम payload claims का निरीक्षण करें।
- NumericDate claims को पठनीय तिथियों में परिवर्तित करें।
- डिकोड किया गया header, डिकोड किया गया payload, या raw token segments कॉपी करें।
डिकोड करना सत्यापन नहीं है
एक JWT को डिकोड करने से आपको पता चलता है कि टोकन क्या कहता है। यह प्रमाणित नहीं करता कि इसे किसने बनाया, payload में संशोधन किया गया है या नहीं, signature मेल खाती है या नहीं, या आपकी एप्लिकेशन को इसे स्वीकार करना चाहिए या नहीं। signature सत्यापन के लिए सही secret, public key, या JWKS कॉन्फ़िगरेशन की आवश्यकता होती है और यह उस algorithm से मिलना चाहिए जिसकी आपकी एप्लिकेशन अपेक्षा करती है।
signature भाग header और payload से अलग होता है। यह एनकोडेड header और payload पर एक क्रिप्टोग्राफिक मान है, कोई अन्य JSON ऑब्जेक्ट नहीं जिसे डिकोड किया जा सके। जब signature मौजूद हो तो यह पृष्ठ raw segments आउटपुट में signature दिखाता है, लेकिन यह signing keys नहीं माँगता और न ही उस मान का सत्यापन करता है।
इसे एक निरीक्षक मानें, प्राधिकरण नहीं। एक डिकोड किया गया टोकन अभी भी नकली, एक्सपायर्ड, unsigned, अनपेक्षित key से साइन किया हुआ, या उस सेवा द्वारा अस्वीकृत हो सकता है जिसने इसे जारी किया था।
सामान्य JWT क्लेम्स
| Claim | Meaning | टिपिकल उपयोग |
|---|---|---|
iss | Issuer | सेवा या identity प्रदाता जिसने टोकन जारी किया। |
sub | Subject | जिस उपयोगकर्ता, खाता, क्लाइंट, या इकाई के बारे में टोकन है। |
aud | Audience | वह API, ऐप, या सेवा जिसे टोकन प्राप्त करना चाहिए। |
iat | कभी जारी किया गया | जब टोकन बनाया गया था। |
nbf | उस समय से पहले नहीं | यह टोकन इस समय से पहले स्वीकार नहीं किया जाना चाहिए। |
exp | समाप्ति समय | यह टोकन इस समय के बाद स्वीकार नहीं किया जाना चाहिए। |
सुरक्षित डिबगिंग आदतें
- जहां संभव हो टेस्ट टोकन का उपयोग करें, प्रोडक्शन उपयोगकर्ता टोकन के बजाय।
- signing secrets, private keys, या API क्रेडेंशियल्स को किसी डिकोडर में पेस्ट न करें।
- जाँच करें कि algorithm आपकी एप्लिकेशन की अपेक्षा के अनुरूप है।
- Compare
issandaudउस सेवा के विरुद्ध जांचें जिसकी आप डिबगिंग कर रहे हैं। - समाप्ति से संबंधित समस्याओं का डिबग करते समय ब्राउज़र का समय और सर्वर का समय अलग हो सकता है, यह ध्यान रखें।
संबंधित स्थानीय टूल्स
- इस्तेमाल करें Base64 एन्कोडर डिकोडर जब आपको सामान्य base64 स्ट्रिंग्स की जांच करने की आवश्यकता होती है। JWTs base64url का उपयोग करते हैं, इसलिए पूरे टोकन के लिए यह JWT डिकोडर अभी भी सुरक्षित विकल्प है।
- इस्तेमाल करें JSON ब्यूटिफायर जब आप टोकन संदर्भ के बाहर कॉपी किए गए payload ऑब्जेक्ट्स को फॉर्मेट करना चाहते हैं।
- इस्तेमाल करें Unix टाइमस्टैम्प कन्वर्टर जब आपको NumericDate मानों जैसे
iat,nbf, या के लिए समर्पित टाइमस्टैम्प जांच की आवश्यकता हो।exp.
अक्सर पूछे जाने वाले प्रश्न
क्या यह JWT डिकोडर सिग्नेचर का सत्यापन करता है?
नहीं। यह header और payload को डिकोड करता है ताकि आप उन्हें निरीक्षण कर सकें, लेकिन यह signature का सत्यापन नहीं करता और न ही यह साबित करता है कि टोकन विश्वसनीय है। सत्यापन के लिए issuer का secret, public key, या JWKS कॉन्फ़िगरेशन आवश्यक है। signature को डिकोडेड JSON पैनल के रूप में नहीं दिखाया जाता क्योंकि यह एक क्रिप्टोग्राफिक मान है, पठनीय claims डेटा नहीं; यह टूल उसे केवल raw segments आउटपुट में ही दिखाता है।
क्या कोई भी JWT डिकोड कर सकता है?
हां, header और payload एन्कोड किए गए हैं, एन्क्रिप्टेड नहीं, जब तक कि आपका सिस्टम अलग एन्क्रिप्टेड टोकन फॉर्मेट न उपयोग करे। JWT payloads में secrets न रखें।
एक एक्सपायर्ड JWT का क्या मतलब है?
यदि exp क्लेम पिछले समय में है, तो एक सर्वर सामान्यतः टोकन को अस्वीकार कर देगा। यह पृष्ठ समय-सीमा दिखा सकता है, लेकिन अंतिम प्राधिकरण सर्वर ही है।
टूल Bearer प्रिफिक्स क्यों स्वीकार करता है?
डेवेलपर अक्सर tokens को एक "Authorization: Bearer ..." हेडर से कॉपी करते हैं। टूल decoding से पहले इस प्रिफिक्स को हटा देता है। Authorization: Bearer ... टूल टोकन बॉडी को डिकोड करने से पहले इस प्रिफिक्स को हटा देता है।