فك ترميز JWT
الصق JSON Web Token لقراءة ترويسته وحمولته، ومعرفة موعد انتهاء صلاحيته، وفهم كل مطالبة فيه. رمزك المميز لا يغادر متصفحك أبدًا.
يعمل في متصفحكبدون تسجيللا يُرفع شيء
فك الترميز ليس تحققًا. يمكن لأي شخص قراءة ترويسة JWT وحمولته، لأنهما مرمَّزتان بـ base64url فقط. تعرض هذه الأداة ما يدّعيه الرمز المميز؛ ولا تثبت أنه أصلي. تحقّق دائمًا من التوقيع على الخادم.
الترويسة (Header)
الحمولة (Payload)
شرح المطالبات (Claims)
التحقق من التوقيع (اختياري، HS256/HS384/HS512)
يتحقق من توقيع HMAC بمفتاح سري تُدخله، باستخدام Web Crypto API في متصفحك. لا يغادر المفتاح السري هذه الصفحة أبدًا. رموز RSA/ECDSA تتطلب المفتاح العام للجهة المُصدِرة ولا يتم التحقق منها هنا.
طريقة استخدام فك ترميز JWT
- الصق الرمز المميز في مربع الرمز المميز المرمَّز. يتم تجاهل البادئة
Bearerالقادمة من ترويسة Authorization. - تُفك ترميز الترويسة والحمولة فورًا وتُعرضان كـ JSON منسَّق.
- اقرأ جدول شرح المطالبات: تُحوَّل
expوiatوnbfإلى تواريخ مع أوقات “تنتهي خلال” / “انتهت منذ”. - راجع شريط الحالة لمشكلات انتهاء الصلاحية والتحذيرات المتعلقة بالإعدادات الخطرة مثل
alg: none. - أدخل اختياريًا المفتاح السري المشترك للتحقق محليًا من توقيع HS256 أو HS384 أو HS512.
ماذا يوجد داخل JWT؟
رمز JSON Web Token (RFC 7519) هو ثلاث سلاسل base64url مفصولة بنقاط: header.payload.signature. تحدد الترويسة خوارزمية التوقيع (alg) ونوع الرمز. وتحمل الحمولة المطالبات، مثل هوية المستخدم وموعد انتهاء صلاحية الرمز. أما التوقيع فيُحسب على الجزأين الأولين باستخدام مفتاح سري أو مفتاح خاص.
فك الترميز ليس تحققًا
الترويسة والحمولة مرمَّزتان فقط وليستا مشفّرتين، لذا يستطيع أي شخص يملك الرمز قراءتهما. ولهذا يجب ألا تضع أبدًا كلمات مرور أو أسرارًا في حمولة JWT. يخبرك فك الترميز بما يقوله الرمز. أما التحقق من التوقيع، عادةً على خادم API باستخدام مكتبة مثل jose أو PyJWT، فيثبت من أصدره وأنه لم يُعدَّل. ويجب على الخادم أيضًا فحص exp وnbf وiss وaud، ورفض الخوارزميات غير المتوقعة.
ورقة مرجعية للمطالبات المسجلة
| المطالبة | المعنى |
|---|---|
iss | المُصدِر: الجهة التي أنشأت الرمز ووقّعته |
sub | الموضوع: عادةً معرّف المستخدم |
aud | الجمهور: واجهة API التي يُقصد بها الرمز |
exp | وقت انتهاء الصلاحية، بالثواني منذ حقبة Unix |
nbf | غير صالح قبل هذا الوقت |
iat | وقت الإصدار |
jti | معرّف فريد للرمز، مفيد لقوائم الإبطال |
تصحيح أخطاء “token expired”
إذا رفضت واجهة API رمزًا يبدو حديثًا، فقارن exp وnbf بساعة الخادم. الانحراف البسيط في الساعة بين الأجهزة شائع، لذا تسمح معظم المكتبات بهامش 30-60 ثانية. تحقق أيضًا من أن exp بالثواني: فالقيمة بالمللي ثانية خطأ متكرر يجعل انتهاء الصلاحية بعد آلاف السنين.
الأسئلة الشائعة
هل من الآمن لصق JWT من بيئة الإنتاج هنا؟
هل تتحقق هذه الأداة من توقيع JWT؟
لماذا يظهر رمزي على أنه منتهي الصلاحية؟
exp تقع في الماضي مقارنةً بساعة حاسوبك. اطلب رمزًا جديدًا، أو جدّده باستخدام رمز التحديث (refresh token). وإذا بدت الأوقات خاطئة، فتحقق من انحراف الساعة أو من قيمة exp مكتوبة بالمللي ثانية.ما الفرق بين JWT وJWS وJWE؟
لماذا تُعد قيمة alg “none” خطرة؟
alg: none وعدم قبول سوى الخوارزمية المحددة التي تتوقعها.