JSON Web Token म्हणजे काय?
JSON Web Token (JWT) हे small claims payload साठी compact, URL-safe envelope आहे. हे stateless web sessions, OAuth/OIDC ID tokens, machine-to-machine API auth, आणि signed magic links साठी standard credential format आहे. JWT नेहमी dots ने joined तीन base64url segments असतो: header.payload.signature. Header आणि payload JSON आहेत; signature पहिल्या दोन segments वर binary MAC किंवा digital signature आहे.
JWTs कसे कार्य करतात?
हे tool token decode करताना प्रत्येक JWT library follow करणारा तोच three-step path walk करतो:
- Token dots वर नक्की तीन non-empty segments मध्ये split करा. इतर कोणताही shape malformed आहे.
- Segments 0 आणि 1 Base64url-decode करा, नंतर प्रत्येक
JSON.parseकरा. Header algorithm (alg) आणि token type (typ) carry करतो. Payload claims (sub,exp,iat, custom keys) carry करतो. - Secret provided असल्यास, header मधील algorithm वापरून
<segment0>.<segment1>वर MAC recompute करा. Third segment विरुद्ध bytes compare करा. - Decoded claims सोबत verification result surface करा,
expclaim मधून computed human-readable expiry indicator सह.
JWTs browser मध्ये का decode करायचे?
Real, in-use JWT remote debugger मध्ये paste केल्यास credential त्या service च्या logs, observability stack, आणि service data share करत असलेल्या कोणत्याही partner ला leak होतो. Third-party site tokens log करत नसल्याचा दावा केला तरी तुम्ही ते verify करू शकत नाही. हे tool बनवले जेणेकरून तुम्हाला कधीही हा compromise करण्याची गरज नसेल:
- Zero network: runtime ला
fetch,XMLHttpRequest, किंवाsendBeaconcalls नाहीत. Decode आणि verify करताना DevTools उघडा — Network panel शांत राहतो. - Native Web Crypto: HMAC verification
crypto.subtle.importKeyआणिcrypto.subtle.signवापरते, तोच primitives तुमचा runtime call करेल. - Static deploy: प्रत्येक page single static HTML file आहे compromise करण्यासाठी server endpoint शिवाय. Token leak होण्यासाठी server नाही.
हे tool काय verify करते, आणि काय नाही?
या tool चा Version 1 फक्त HMAC-SHA family signatures verify करतो. Concretely:
- Supported: HS256, HS384, HS512. Shared secret provide करा आणि tool MAC recompute आणि compare करेल.
- अद्याप supported नाही: RS256/384/512 (RSA), ES256/384/512 (ECDSA), EdDSA, आणि PS256/384/512 (RSA-PSS). यांना PEM किंवा JWK form मध्ये public key लागतो आणि ते जाणूनबुजून follow-up release साठी deferred आहेत.
- Refused:
alg: "none". Tool token decode करतो पण explicitly insecure म्हणून flag करतो — signature validation होत नाही, आणि असा token accept करणाऱ्या कोणत्याही production system मध्ये serious vulnerability आहे.
JWT decoding उदाहरण कसे दिसते?
वर input field मध्ये canonical RFC 7519 example token paste करा:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Header {"alg":"HS256","typ":"JWT"} मध्ये decode होतो आणि payload {"sub":"1234567890","name":"John Doe","iat":1516239022} मध्ये. Verify panel मध्ये your-256-bit-secret प्रविष्ट करा आणि signature check valid परत येतो. Secret चा एकच character बदला आणि ते invalid परत येते. यातील काहीही तुमचा browser सोडत नाही.
हाच JWT decoder आम्हाला production मध्ये token debug करायला लागल्यावर हवा होता: privacy-respecting, जलद, आणि runtime वापरत असलेल्या तोच primitives वर बनवलेला.