מפענח JWT
פענוח והצגה של Header, Payload ו-Signature
מה זה JWT?
JSON Web Token הוא סטנדרט (RFC 7519) לייצוג טענות (claims) בין שני צדדים, בפורמט JSON קומפקטי וחתום. הוא בשימוש נרחב באימות משתמשים (authentication) ובהעברת מידע מאומת בין שירותים ב-APIs מודרניים.
טוקן JWT מורכב משלושה חלקים מופרדים בנקודה: header.payload.signature. כל חלק מקודד ב-Base64URL.
שלושת החלקים
Header
מכיל את סוג הטוקן (typ) ואלגוריתם החתימה (alg). לדוגמה: HS256 (HMAC + SHA-256), RS256 (RSA + SHA-256).
Payload
הנתונים עצמם — ה-claims. כולל claims סטנדרטיים כמו sub (subject, מזהה המשתמש), iat (issued at), exp (expiration), iss (issuer), ו-claims מותאמים לאפליקציה.
Signature
חתימה קריפטוגרפית של ה-header וה-payload באמצעות מפתח סודי. רק מי שמחזיק במפתח יכול ליצור חתימה תקינה. החתימה מאפשרת לשרת לוודא שהטוקן לא שונה.
JWT אינו מוצפן
שגיאה נפוצה: לחשוב ש-JWT מסתיר את הנתונים. הוא חתום, לא מוצפן — כל מי שרואה את הטוקן יכול לפענח את ה-payload בקלות (בדיוק מה שהכלי הזה עושה). אל תשים סיסמאות, מספרי כרטיסי אשראי או מידע רגיש ב-payload.
פגי תוקף
ה-claim exp הוא Unix timestamp שמציין מתי הטוקן פג. בדיקת exp היא באחריות השרת שמקבל את הטוקן, לא הלקוח. הכלי הזה מציג אם הטוקן פג כבר, אבל זה רק לעזר ויזואלי.