JWT डिकोडर

JWT अनलाइन डिकोड गर्नुहोस्

API को प्रमाणीकरण समस्या बुझ्न JWT भित्रको विवरण पढ्नुहोस्। टोकन वा Bearer मान पेस्ट गरेर हेडर, पेलोड र exp, iat, nbf को UTC समय हेर्न सकिन्छ। पढ्नका लागि कुञ्जी चाहिँदैन।

JWT डिकोडरब्राउजरमै डिकोड हुन्छ
JWT वा Authorization: Bearer को मान राख्न सकिन्छ। यो उपकरणले टोकन डिकोडिङ API मा पठाउँदैन र इनपुट सुरक्षित गरेर राख्दैन।
उदाहरण हेर्नुहोस्
डिकोड मात्र गरिएको · हस्ताक्षर जाँचिएको छैन

पढ्न मिल्ने विवरण पनि नक्कली हुन सक्छ। टोकनलाई विश्वास गर्नुअघि हस्ताक्षर र एपले मागेका क्लेम जाँच्नुहोस्।

01 हेडर

एल्गोरिदम र टोकनको विवरण

{
  "alg": "HS256",
  "typ": "JWT"
}

02 पेलोड

टोकनभित्रका क्लेम

{
  "sub": "demo-user",
  "iss": "https://example.com",
  "aud": "demo-api",
  "iat": 1704067200,
  "nbf": 1704067200,
  "exp": 1704070800
}

समयसम्बन्धी क्लेम UTC

यन्त्रको घडीसँग तुलना गरिन्छ। घडीको फरकका लागि छुट दिइँदैन। यो तुलनाले टोकनको वैधता पुष्टि गर्दैन।

क्लेमUTC समयघडीसँग तुलना
iatजारी भएको समय2024-01-01T00:00:00.000Zयन्त्रको समय पढिँदै छ…
nbfप्रयोग सुरु हुने समय2024-01-01T00:00:00.000Zयन्त्रको समय पढिँदै छ…
expम्याद सकिने समय2024-01-01T01:00:00.000Zयन्त्रको समय पढिँदै छ…

03 हस्ताक्षर

उल्लेख गरिएको एल्गोरिदम: HS256 · 11 बाइट · जाँचिएको छैन

cGxhY2Vob2xkZXI

म्याद बाँकी हुँदा पनि अनुरोध किन अस्वीकार हुन्छ?

म्याद मात्र जाँचेर पुग्दैन। aud ले टोकन कुन प्राप्तकर्ताका लागि हो भन्ने जनाउँछ; यसको मान स्ट्रिङ वा स्ट्रिङको एरे हुन सक्छ। iss जारी गर्ने पक्ष हो र sub टोकनले जनाउने विषय वा पहिचान हो। अर्को API का लागि जारी गरिएको टोकन यहाँ नचल्न सक्छ।

यी क्लेम टोकनले आफैँ उल्लेख गरेका विवरण हुन्। तिनलाई पढ्न सक्दैमा जारी गर्ने पक्षको पहिचान प्रमाणित हुँदैन। कुन क्लेम अनिवार्य हो र कुन मान स्वीकार गर्ने भन्ने कुरा एप वा प्रोटोकलले तय गर्छ।

JWT का तीन भाग कसरी पढ्ने

सामान्य हस्ताक्षरयुक्त JWT को ढाँचा header.payload.signature हुन्छ। पहिला दुई भागमा Base64url बाट इन्कोड गरिएका UTF-8 JSON अब्जेक्ट हुन्छन्। अन्तिम भागमा हस्ताक्षर वा MAC का बाइट हुन्छन्, अर्को JSON कागजात होइन।

टोकन मात्र, Bearer सहित वा Authorization: Bearer सहितको मान पेस्ट गर्न सकिन्छ। पूरै HTTP अनुरोध नराख्नुहोस्। हेडर र पेलोड छुट्टाछुट्टै कपी गर्न सकिन्छ। ठूला पूर्णाङ्कसहित सङ्ख्याको मूल लेखाइ देखाउँदा र कपी गर्दा जस्ताको तस्तै राखिन्छ।

exp को एकाइ सेकेन्ड हो

exp म्याद सकिने समय हो, nbf प्रयोग सुरु गर्न मिल्ने समय हो र iat जारी भएको समय हो। NumericDate ले Unix epoch पछिका सेकेन्ड जनाउँछ। 1704067200 भनेको १ जनवरी २०२४ को 00:00 UTC हो; यो JavaScript को मिलिसेकेन्ड मान होइन।

समय तालिकामा यन्त्रको घडीसँग तुलना हुन्छ र घडीको फरकका लागि थप छुट हुँदैन। म्याद बाँकी हुँदैमा हस्ताक्षर सही छ वा प्राप्तकर्ता मिल्छ भन्ने हुँदैन। भविष्यको iat जाँच गर्नुपर्ने सङ्केत हो; त्यसैबाट यो उपकरणले पूरै टोकनको वैधता तोक्दैन।

डिकोड गर्नु र हस्ताक्षर जाँच्नु फरक काम हुन्

Base64url ले विवरणको रूप बदल्छ, गोप्य बनाउँदैन। त्यसैले हस्ताक्षरयुक्त JWT को विवरण पढ्न secret चाहिँदैन। टोकन स्वीकार गर्ने सेवाले भरपर्दा कुञ्जी र अनुमति दिइएका एल्गोरिदम प्रयोग गरेर हस्ताक्षर तथा आवश्यक क्लेम जाँच्नुपर्छ। इनपुटमा लेखिएको alg कै भरमा विश्वासको नियम तय गर्नु हुँदैन।

उपकरणले कुञ्जीको URL खोल्दैन र समावेश गरिएका कुञ्जी प्रयोग गर्दैन। पाँच भाग भएको इन्क्रिप्टेड JWE, नेस्टेड JWT र b64: false समर्थित छैनन्। सीमा 50,000 अक्षर र JSON का 64 तह हो। एउटै की दोहोरिए फरक अर्थ लाग्न सक्ने भएकाले त्रुटि देखाइन्छ।

उदाहरणबाट बुझ्नुहोस्

म्याद सकिएको उदाहरण

काल्पनिक क्लेम र नमुना हस्ताक्षर; लगइनका लागि प्रयोग गर्न मिल्दैन।

JWT डिकोडरमा फर्कनुहोस्

हस्ताक्षर नभएको

alg: none भएको र तेस्रो भाग खाली रहेको उदाहरण।

JWT डिकोडरमा फर्कनुहोस्

Unicode क्लेम

विभिन्न भाषाको पाठ र धेरै प्राप्तकर्ता; हस्ताक्षर नमुना मात्र हो।

JWT डिकोडरमा फर्कनुहोस्

बारम्बार सोधिने प्रश्न

JWT पढ्न गोप्य कुञ्जी चाहिन्छ?

हेडर र पेलोड JSON भएका तीन भागको JWT पढ्न चाहिँदैन। Base64url डिकोड गर्न मात्र पर्छ। हस्ताक्षरको क्रिप्टोग्राफिक जाँचका लागि उपयुक्त कुञ्जी चाहिन्छ; यो उपकरणले त्यो जाँच गर्दैन।

alg: none को अर्थ के हो?

टोकनमा क्रिप्टोग्राफिक हस्ताक्षर छैन भन्ने हो। तेस्रो भाग खाली भए पनि अन्तिम थोप्ला रहन्छ। विवरण पढ्न मिल्दैमा प्रमाणीकरणका लागि विश्वास गर्न मिल्दैन।

टोकन सर्भरमा पठाइन्छ वा राखिन्छ?

उपकरणले ब्राउजरमै काम गर्छ। इनपुट डिकोडिङ API मा पठाउँदैन, सुरक्षित गरेर राख्दैन र URL मा थप्दैन। वास्तविक Bearer टोकनले पहुँच दिन सक्छ, त्यसैले सुविधा बुझ्न काल्पनिक उदाहरण प्रयोग गर्न सकिन्छ।

उदाहरणबाट लगइन गर्न मिल्छ?

मिल्दैन। म्याद सकिएको उदाहरणको exp १ जनवरी २०२४ को 01:00 UTC हो र हस्ताक्षर नमुना मात्र हो। Unicode उदाहरणमा विभिन्न भाषा र धेरै aud छन्, त्यसको हस्ताक्षर पनि नमुना हो। हस्ताक्षर नभएको उदाहरणमा alg: none छ।

ढाँचाको त्रुटि कसरी सच्याउने?

तीन भाग पूरा छन् कि छैनन् र बीचमा खाली ठाउँ, उद्धरण चिह्न वा थप प्याडिङ छ कि छैन हेर्नुहोस्। हेडर र पेलोड UTF-8 JSON अब्जेक्ट हुनुपर्छ। दोहोरिएका की र alg सँग नमिल्ने खाली हस्ताक्षर पनि अस्वीकार हुन्छन्। पाँच भाग भए JWE हुन सक्छ।

RFC 7519 · RFC 7515 · RFC 8725

JWT डिकोडरमा फर्कनुहोस्