فك ترميز JWT

الصق JSON Web Token لقراءة ترويسته وحمولته، ومعرفة موعد انتهاء صلاحيته، وفهم كل مطالبة فيه. رمزك المميز لا يغادر متصفحك أبدًا.

يعمل في متصفحكبدون تسجيللا يُرفع شيء

فك الترميز ليس تحققًا. يمكن لأي شخص قراءة ترويسة JWT وحمولته، لأنهما مرمَّزتان بـ base64url فقط. تعرض هذه الأداة ما يدّعيه الرمز المميز؛ ولا تثبت أنه أصلي. تحقّق دائمًا من التوقيع على الخادم.

الترويسة (Header)

الحمولة (Payload)


      

التحقق من التوقيع (اختياري، HS256/HS384/HS512)

يتحقق من توقيع HMAC بمفتاح سري تُدخله، باستخدام Web Crypto API في متصفحك. لا يغادر المفتاح السري هذه الصفحة أبدًا. رموز RSA/ECDSA تتطلب المفتاح العام للجهة المُصدِرة ولا يتم التحقق منها هنا.

طريقة استخدام فك ترميز JWT

  1. الصق الرمز المميز في مربع الرمز المميز المرمَّز. يتم تجاهل البادئة Bearer القادمة من ترويسة Authorization.
  2. تُفك ترميز الترويسة والحمولة فورًا وتُعرضان كـ JSON منسَّق.
  3. اقرأ جدول شرح المطالبات: تُحوَّل exp وiat وnbf إلى تواريخ مع أوقات “تنتهي خلال” / “انتهت منذ”.
  4. راجع شريط الحالة لمشكلات انتهاء الصلاحية والتحذيرات المتعلقة بالإعدادات الخطرة مثل alg: none.
  5. أدخل اختياريًا المفتاح السري المشترك للتحقق محليًا من توقيع 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 من بيئة الإنتاج هنا؟
يتم فك الترميز بالكامل في متصفحك باستخدام JavaScript. لا يُرفع الرمز ولا يُسجَّل ولا يُخزَّن. ومع ذلك، كما هو الحال مع أي بيانات اعتماد، تعامل بحذر مع الرموز الفعّالة وفضّل الرموز المنتهية أو التجريبية عند مشاركة لقطات الشاشة.
هل تتحقق هذه الأداة من توقيع JWT؟
فك الترميز وحده لا يفعل ذلك. يمكنك اختياريًا التحقق من رموز HS256 وHS384 وHS512 بإدخال المفتاح السري المشترك؛ إذ يُحسب HMAC محليًا باستخدام Web Crypto API. أما رموز RS256 وES256 فيجب التحقق منها بالمفتاح العام للجهة المُصدِرة على خادمك.
لماذا يظهر رمزي على أنه منتهي الصلاحية؟
مطالبة exp تقع في الماضي مقارنةً بساعة حاسوبك. اطلب رمزًا جديدًا، أو جدّده باستخدام رمز التحديث (refresh token). وإذا بدت الأوقات خاطئة، فتحقق من انحراف الساعة أو من قيمة exp مكتوبة بالمللي ثانية.
ما الفرق بين JWT وJWS وJWE؟
JWT هو صيغة المطالبات. وJWS هو JWT موقَّع من ثلاثة أجزاء، وهو ما تفك هذه الأداة ترميزه. أما JWE فهو JWT مشفَّر من خمسة أجزاء؛ ولا يمكن قراءة حمولته دون مفتاح فك التشفير.
لماذا تُعد قيمة alg “none” خطرة؟
يمكن لأي شخص تزوير رمز غير موقَّع. يجب على الخوادم رفض alg: none وعدم قبول سوى الخوارزمية المحددة التي تتوقعها.

أدوات ذات صلة