भाषा चुनें

JWT डिकोडर

अपने JWT को सुरक्षित रूप से डिकोड करें। हेडर और पेलोड JSON देखें, और exp, iat जैसे दावों के टाइमस्टैम्प को आसानी से पढ़ें। डेटा ब्राउज़र में ही रहता है।

Mehmet Demiray (मेहमत देमिराय) प्रकाशित अपडेट किया गया
साझा करें
exp, iat और nbf क्लेम्स को पढ़ने योग्य तारीखों में बदलें

JWT की संरचना: हेडर, पेलोड और सिग्नेचर

JWT (JSON Web Token) वेब अनुप्रयोगों में सूचनाओं के सुरक्षित आदान-प्रदान के लिए एक खुला मानक (RFC 7519) है। इसकी संरचना मुख्य रूप से तीन भागों से मिलकर बनी होती है: हेडर, पेलोड और सिग्नेचर। जब आप किसी टोकन को देखते हैं, तो यह आमतौर पर xxxx.yyyy.zzzz के रूप में दिखाई देता है, जहां प्रत्येक भाग एक बिंदु द्वारा अलग किया जाता है। पहला भाग हेडर होता है, जो यह बताता है कि टोकन किस प्रकार का है और कौन सा क्रिप्टोग्राफिक एल्गोरिदम इस्तेमाल किया गया है। दूसरा भाग पेलोड है, जिसमें वास्तविक डेटा या क्लेम्स होते हैं, जैसे कि उपयोगकर्ता की पहचान या भूमिका। तीसरा भाग सिग्नेचर है, जो यह सुनिश्चित करता है कि डेटा के साथ कोई छेड़छाड़ नहीं की गई है। हेडर और पेलोड दोनों को सुरक्षित रूप से यूआरएल में भेजने के लिए बेस64यूआरएल एन्कोडेड किया जाता है। JWT डिकोडर इस एन्कोडिंग को हटाकर डेटा को पढ़ने योग्य प्रारूप में प्रस्तुत करता है। यदि आप यह समझना चाहते हैं कि यह एन्कोडिंग कैसे काम करती है, तो आप बेस64 डिकोडिंग की प्रक्रिया का अध्ययन कर सकते हैं। एक सामान्य JWT का आकार अक्सर 1,024 बाइट्स के आसपास होता है, जो इसे HTTP हेडर में भेजने के लिए बहुत हल्का और उपयुक्त बनाता है।

JWT क्लेम्स क्या हैं?

पेलोड के भीतर मौजूद डेटा को तकनीकी भाषा में क्लेम्स कहा जाता है। ये क्लेम्स उपयोगकर्ता और टोकन के बारे में महत्वपूर्ण जानकारी प्रदान करते हैं। JWT मानक में कुछ पंजीकृत क्लेम्स होते हैं जिन्हें हर डेवलपर को जानना आवश्यक है। iss यह बताता है कि टोकन किस सर्वर या सेवा ने जारी किया है। sub उस उपयोगकर्ता की विशिष्ट पहचान करता है जिसके लिए टोकन बनाया गया है। aud यह दर्शाता है कि यह टोकन किस प्राप्तकर्ता के लिए है। समय से जुड़े क्लेम्स सुरक्षा की दृष्टि से बहुत महत्वपूर्ण होते हैं। exp यह निर्धारित करता है कि टोकन कब अमान्य हो जाएगा। iat वह समय बताता है जब टोकन जारी किया गया था। nbf यह तय करता है कि किस समय से पहले टोकन को स्वीकार नहीं किया जाना चाहिए। उदाहरण के लिए, यदि किसी टोकन की समाप्ति तिथि 31 दिसंबर 2024 है, तो उसके बाद वह टोकन बेकार हो जाएगा। JWT डिकोडर इन समय से जुड़े क्लेम्स को यूनिक्स टाइमस्टैम्प से बदलकर मानव-पठनीय समय में दिखाता है। आप इस डिकोड किए गए डेटा को JSON फॉर्मेट में आसानी से पढ़ सकते हैं और कॉपी बटन का उपयोग करके इसे अपने प्रोजेक्ट में उपयोग कर सकते हैं।

डिकोडिंग और वेरिफिकेशन में अंतर

कई नए डेवलपर्स टोकन को डिकोड करने और उसे वेरिफाई करने की प्रक्रिया को एक ही मान लेते हैं, जो सुरक्षा के लिहाज से एक बड़ी भूल साबित हो सकती है। JWT डिकोडर केवल बेस64यूआरएल एन्कोडेड स्ट्रिंग को वापस सामान्य JSON में बदलता है। इस डिकोडिंग प्रक्रिया में किसी भी प्रकार की गुप्त कुंजी या पब्लिक कुंजी की आवश्यकता नहीं होती है। इसका सीधा सा अर्थ यह है कि इंटरनेट पर कोई भी व्यक्ति आपके टोकन के हेडर और पेलोड को आसानी से पढ़ सकता है। केवल डिकोड करने का अर्थ यह बिल्कुल नहीं है कि टोकन पर भरोसा किया जा सकता है या वह प्रामाणिक है। वेरिफिकेशन वह तकनीकी प्रक्रिया है जिसमें सिग्नेचर की गणितीय जांच की जाती है ताकि यह सुनिश्चित हो सके कि टोकन जारी होने के बाद किसी भी हमलावर ने पेलोड में कोई बदलाव नहीं किया है। जब आप अपने सर्वर या बैकएंड एपीआई पर कोई टोकन स्वीकार करते हैं, तो हमेशा उसके सिग्नेचर को वेरिफाई करें। डिकोडिंग केवल यह देखने के लिए एक उपयोगी टूल है कि टोकन के अंदर क्या डेटा मौजूद है, न कि उसकी प्रामाणिकता सिद्ध करने के लिए।

एपीआई ऑथेंटिकेशन समस्याओं को डीबग करना

जब आप किसी नए वेब एप्लिकेशन या एपीआई इंटीग्रेशन पर काम कर रहे होते हैं, तो ऑथेंटिकेशन से जुड़ी समस्याएं आना एक बहुत ही सामान्य बात है। अक्सर आपका सर्वर 401 Unauthorized या 403 Forbidden जैसी त्रुटियां देता है और यह समझना मुश्किल हो जाता है कि समस्या वास्तव में कहां है। ऐसे परिदृश्यों में JWT डिकोडर एक अत्यंत उपयोगी टूल साबित होता है। सबसे आम समस्या टोकन का समाप्त हो जाना है। आप डिकोडर का उपयोग करके तुरंत exp क्लेम की जांच कर सकते हैं। दूसरी आम समस्या गलत ऑडियंस का होना है, जहां टोकन किसी अन्य सेवा या डोमेन के लिए जारी किया गया होता है और आप उसे किसी और जगह उपयोग करने का प्रयास कर रहे होते हैं। कभी-कभी सर्वर और क्लाइंट के समय में मामूली अंतर के कारण भी nbf या exp क्लेम्स विफल हो जाते हैं। उदाहरण के लिए, यदि दोनों सिस्टम की घड़ियों में 5 मिनट का भी अंतर है, तो एक वैध टोकन भी अमान्य माना जा सकता है। टोकन को डिकोड करके आप इन सभी मूल्यों की तुरंत जांच कर सकते हैं और अपने कोड में मौजूद समस्या का सटीक कारण ढूंढ सकते हैं।

क्या प्रोडक्शन टोकन को डिकोड करना सुरक्षित है?

सुरक्षा और गोपनीयता के प्रति जागरूक डेवलपर्स अक्सर यह महत्वपूर्ण सवाल पूछते हैं कि क्या किसी भी ऑनलाइन टूल में अपना असली या प्रोडक्शन टोकन पेस्ट करना सुरक्षित है। JWT डिकोडर को पूरी तरह से आपके वेब ब्राउज़र के भीतर काम करने के लिए डिज़ाइन किया गया है। जब आप अपना टोकन इनपुट बॉक्स में पेस्ट करते हैं, तो यह डेटा किसी भी बाहरी सर्वर या डेटाबेस पर नहीं भेजा जाता है। डिकोडिंग की पूरी प्रक्रिया स्थानीय रूप से आपके डिवाइस पर ही संपन्न होती है। इसका मतलब है कि आपका संवेदनशील डेटा पूरी तरह से सुरक्षित और निजी रहता है। एक अच्छे सुरक्षा अभ्यास के रूप में, यह हमेशा सलाह दी जाती है कि पेलोड में कभी भी पासवर्ड, क्रेडिट कार्ड नंबर या ₹50,000.00 जैसे बड़े वित्तीय लेनदेन की गोपनीय जानकारी न रखें। चूंकि टोकन को बिना किसी चाबी के आसानी से डिकोड किया जा सकता है, इसलिए पेलोड में केवल वही जानकारी होनी चाहिए जो सार्वजनिक रूप से पढ़ी जा सके और जिससे उपयोगकर्ता की गोपनीयता को कोई खतरा न हो।

अक्सर पूछे जाने वाले प्रश्न।

क्या JWT को डिकोड करना और उसे वेरिफाई करना एक ही बात है?

नहीं, ये दोनों अलग-अलग प्रक्रियाएं हैं। JWT डिकोडर केवल टोकन के बेस64 एनकोडेड डेटा को पढ़ने योग्य JSON में बदलता है। यह सिग्नेचर की जांच नहीं करता है। किसी भी टोकन पर भरोसा करने से पहले सर्वर साइड पर सीक्रेट की के जरिए उसे वेरिफाई करना जरूरी होता है।

क्या प्रोडक्शन का असली टोकन यहां पेस्ट करना सुरक्षित है?

हां, यह पूरी तरह सुरक्षित है। हमारा JWT डिकोडर पूरी तरह से आपके ब्राउज़र के अंदर काम करता है। आपका डेटा या टोकन किसी भी सर्वर पर नहीं भेजा जाता है। हालांकि सुरक्षा के लिहाज से असली टोकन को बेवजह कॉपी-पेस्ट करने से बचना एक अच्छी आदत है।

मैं कैसे चेक कर सकता हूं कि मेरा टोकन कब एक्सपायर होगा?

आप अपना टोकन इस टूल में पेस्ट करें। डिकोड होने के बाद पेलोड हिस्से में 'exp' क्लेम देखें। यह टूल उस यूनिक्स टाइमस्टैम्प को आपके लिए एक आसान और पढ़ने योग्य तारीख और समय में बदल देता है जिससे आपको एक्सपायरी का सटीक समय पता चल जाता है।

मेरा टोकन डिकोड क्यों नहीं हो रहा है?

इसके कुछ मुख्य कारण हो सकते हैं। सबसे आम कारण यह है कि आपके टोकन का स्ट्रक्चर गलत हो। एक सही JWT में तीन हिस्से होते हैं जो डॉट (.) से जुड़े होते हैं जिनमें हेडर, पेलोड और सिग्नेचर शामिल हैं। सुनिश्चित करें कि आपने पूरा टोकन कॉपी किया है और उसमें कोई अतिरिक्त स्पेस या अक्षर नहीं है।

क्या मैं डिकोड किए गए डेटा को अलग से पढ़ या एडिट कर सकता हूं?

यह टूल डिफ़ॉल्ट रूप से हेडर और पेलोड को साफ सुथरे तरीके से दिखाता है। अगर आप उस JSON डेटा को और भी गहराई से जाँचना चाहते हैं या उसे अपने प्रोजेक्ट के लिए व्यवस्थित करना चाहते हैं, तो आप हमारे JSON फ़ॉर्मेटर टूल का उपयोग कर सकते हैं।

JWT में Base64Url एनकोडिंग का क्या काम है?

JWT के हेडर और पेलोड को Base64Url फॉर्मेट में एनकोड किया जाता है ताकि वे इंटरनेट पर URL के जरिए सुरक्षित रूप से भेजे जा सकें। यह सामान्य एनकोडिंग से थोड़ा अलग है क्योंकि इसमें कुछ विशेष कैरेक्टर हटा दिए जाते हैं। आप सामान्य डेटा को समझने के लिए Base64 डिकोड टूल की मदद ले सकते हैं।