JSON Web Token ਕੀ ਹੈ?
JSON Web Token (JWT) ਇੱਕ ਛੋਟੇ ਦਾਅਵੇ ਪੇਲੋਡ ਲਈ ਸੰਖੇਪ, URL-ਸੁਰੱਖਿਅਤ ਲਿਫਾਫਾ ਹੈ। ਇਹ ਸਟੇਟਲੈੱਸ ਵੈੱਬ ਸੈਸ਼ਨਾਂ, OAuth/OIDC ID ਟੋਕਨਾਂ, ਮਸ਼ੀਨ-ਤੋਂ-ਮਸ਼ੀਨ API ਪ੍ਰਮਾਣਿਕਤਾ, ਅਤੇ ਸਾਈਨਡ ਮੈਜਿਕ ਲਿੰਕਾਂ ਲਈ ਮਿਆਰੀ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਫਾਰਮੈਟ ਹੈ। JWT ਹਮੇਸ਼ਾ ਡੌਟਸ ਨਾਲ ਜੁੜੇ ਤਿੰਨ base64url ਭਾਗ ਹੁੰਦੇ ਹਨ: header.payload.signature।
JWT ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ?
ਜਦੋਂ ਇਹ ਟੂਲ ਟੋਕਨ ਡੀਕੋਡ ਕਰਦਾ ਹੈ ਤਾਂ ਇਹ ਉਹੀ ਤਿੰਨ-ਕਦਮ ਮਾਰਗ ਚੱਲਦਾ ਹੈ ਜੋ ਹਰ JWT ਲਾਇਬ੍ਰੇਰੀ ਚੱਲਦੀ ਹੈ:
- ਟੋਕਨ ਨੂੰ ਡੌਟਾਂ ਤੇ ਬਿਲਕੁਲ ਤਿੰਨ ਗੈਰ-ਖਾਲੀ ਭਾਗਾਂ ਵਿੱਚ ਵੰਡੋ। ਕੋਈ ਹੋਰ ਆਕਾਰ ਖਰਾਬ ਹੈ।
- ਭਾਗ 0 ਅਤੇ 1 ਨੂੰ Base64url-ਡੀਕੋਡ ਕਰੋ, ਫਿਰ ਹਰ ਇੱਕ ਨੂੰ
JSON.parseਕਰੋ। ਹੈਡਰ ਐਲਗੋਰਿਦਮ (alg) ਅਤੇ ਟੋਕਨ ਕਿਸਮ (typ) ਰੱਖਦਾ ਹੈ। ਪੇਲੋਡ ਦਾਅਵੇ (sub,exp,iat, ਕਸਟਮ ਕੁੰਜੀਆਂ) ਰੱਖਦਾ ਹੈ। - ਜੇ ਸੀਕਰੇਟ ਦਿੱਤੀ ਹੈ, ਹੈਡਰ ਵਿੱਚ ਐਲਗੋਰਿਦਮ ਵਰਤ ਕੇ
<segment0>.<segment1>ਤੇ MAC ਮੁੜ-ਗਿਣੋ। ਬਾਈਟਸ ਤੀਜੇ ਭਾਗ ਨਾਲ ਤੁਲਨਾ ਕਰੋ। - ਡੀਕੋਡ ਕੀਤੇ ਦਾਅਵਿਆਂ ਦੇ ਨਾਲ ਜਾਂਚ ਨਤੀਜਾ ਦਿਖਾਓ, ਜਿਸ ਵਿੱਚ
expਦਾਅਵੇ ਤੋਂ ਗਿਣਿਆ ਮਨੁੱਖ-ਪੜ੍ਹਨਯੋਗ ਮਿਆਦ ਸੂਚਕ ਸ਼ਾਮਲ ਹੈ।
JWT ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਕਿਉਂ ਡੀਕੋਡ ਕਰੋ?
ਅਸਲ ਵਰਤੋਂ ਵਿੱਚ ਆਉਣ ਵਾਲੇ JWT ਨੂੰ ਰਿਮੋਟ ਡੀਬੱਗਰ ਵਿੱਚ ਪੇਸਟ ਕਰਨ ਨਾਲ ਕ੍ਰੈਡੈਂਸ਼ੀਅਲ ਉਸ ਸੇਵਾ ਦੇ ਲੌਗਾਂ ਤੱਕ ਲੀਕ ਹੁੰਦੇ ਹਨ। ਇਹ ਟੂਲ ਇਸ ਲਈ ਬਣਾਇਆ ਗਿਆ ਤਾਂ ਜੋ ਤੁਹਾਨੂੰ ਕਦੇ ਉਹ ਸਮਝੌਤਾ ਨਾ ਕਰਨਾ ਪਵੇ:
- ਜ਼ੀਰੋ ਨੈੱਟਵਰਕ: ਰਨਟਾਈਮ ਵਿੱਚ ਕੋਈ
fetch,XMLHttpRequest, ਜਾਂsendBeaconਕਾਲ ਨਹੀਂ। DevTools ਖੋਲ੍ਹੋ — ਨੈੱਟਵਰਕ ਪੈਨਲ ਚੁੱਪ ਰਹਿੰਦਾ ਹੈ। - ਨੇਟਿਵ Web Crypto: HMAC ਜਾਂਚ
crypto.subtle.importKeyਅਤੇcrypto.subtle.signਵਰਤਦੀ ਹੈ, ਉਹੀ ਪ੍ਰਿਮਿਟਿਵ ਜੋ ਤੁਹਾਡਾ ਰਨਟਾਈਮ ਕਾਲ ਕਰਦਾ। - ਸਟੈਟਿਕ ਡਿਪਲੋਏ: ਹਰ ਪੇਜ ਬਿਨਾਂ ਸਰਵਰ ਐਂਡਪੁਆਇੰਟ ਵਾਲੀ ਇੱਕ ਸਟੈਟਿਕ HTML ਫਾਈਲ ਹੈ। ਲੀਕ ਕਰਨ ਲਈ ਕੋਈ ਸਰਵਰ ਨਹੀਂ ਹੈ।
ਇਹ ਟੂਲ ਕੀ ਜਾਂਚਦਾ ਹੈ, ਅਤੇ ਕੀ ਨਹੀਂ?
ਇਸ ਟੂਲ ਦਾ ਵਰਜ਼ਨ 1 ਸਿਰਫ਼ HMAC-SHA ਪਰਿਵਾਰ ਸਿਗਨੇਚਰ ਜਾਂਚਦਾ ਹੈ। ਖਾਸ ਤੌਰ ਤੇ:
- ਸਪੋਰਟ ਕੀਤਾ: HS256, HS384, HS512. ਸਾਂਝਾ ਸੀਕਰੇਟ ਦਿਓ ਅਤੇ ਟੂਲ MAC ਮੁੜ-ਗਿਣੇਗਾ ਅਤੇ ਤੁਲਨਾ ਕਰੇਗਾ।
- ਅਜੇ ਸਪੋਰਟ ਨਹੀਂ: RS256/384/512 (RSA), ES256/384/512 (ECDSA), EdDSA, ਅਤੇ PS256/384/512 (RSA-PSS)। ਇਹਨਾਂ ਲਈ PEM ਜਾਂ JWK ਰੂਪ ਵਿੱਚ ਪਬਲਿਕ ਕੁੰਜੀ ਲੋੜੀਂਦੀ ਹੈ।
- ਇਨਕਾਰ:
alg: "none". ਟੂਲ ਟੋਕਨ ਡੀਕੋਡ ਕਰਦਾ ਹੈ ਪਰ ਇਸਨੂੰ ਸਪੱਸ਼ਟ ਅਸੁਰੱਖਿਅਤ ਚਿੰਨ੍ਹਿਤ ਕਰਦਾ ਹੈ।
JWT ਡੀਕੋਡਿੰਗ ਉਦਾਹਰਣ ਕਿਵੇਂ ਦਿਖਦੀ ਹੈ?
ਕੈਨੋਨੀਕਲ RFC 7519 ਉਦਾਹਰਣ ਟੋਕਨ ਉੱਪਰ ਇਨਪੁੱਟ ਖੇਤਰ ਵਿੱਚ ਪੇਸਟ ਕਰੋ:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
ਹੈਡਰ {"alg":"HS256","typ":"JWT"} ਅਤੇ ਪੇਲੋਡ {"sub":"1234567890","name":"John Doe","iat":1516239022} ਤੇ ਡੀਕੋਡ ਹੁੰਦਾ ਹੈ। ਜਾਂਚ ਪੈਨਲ ਵਿੱਚ your-256-bit-secret ਦਰਜ ਕਰੋ ਅਤੇ ਸਿਗਨੇਚਰ ਜਾਂਚ ਵੈਧ ਵਾਪਸ ਕਰਦੀ ਹੈ। ਇਸ ਵਿੱਚੋਂ ਕੁਝ ਵੀ ਤੁਹਾਡਾ ਬ੍ਰਾਊਜ਼ਰ ਨਹੀਂ ਛੱਡਦਾ।
ਇਹ JWT ਡੀਕੋਡਰ ਹੈ ਜੋ ਅਸੀਂ ਚਾਹੁੰਦੇ ਸੀ ਜਦੋਂ ਉਤਪਾਦਨ ਵਿੱਚ ਟੋਕਨ ਡੀਬੱਗ ਕਰਨਾ ਸੀ: ਪ੍ਰਾਈਵੇਸੀ-ਸਤਿਕਾਰੀ, ਤੇਜ਼, ਅਤੇ ਉਹੀ ਪ੍ਰਿਮਿਟਿਵਾਂ ਤੇ ਬਣਾਇਆ ਜੋ ਰਨਟਾਈਮ ਵਰਤਦਾ ਹੈ।