فك وتصحيح رموز JWT

فك رمز JWT لفحص الترويسة (header) والحمولة (payload)، وتحقق تلقائيًا ما إذا كان منتهي الصلاحية (exp) أو لم يصبح فعّالًا بعد (nbf). يتم فك الترميز بالكامل داخل متصفحك — وهو مفيد لتصحيح جلسة ما، دون إرسال الرمز إلى أي خادم.

مثال:

⚠ تنبيه: التوقيع غير مُتحقَّق منه. تفك هذه الأداة محتوى الرمز وتتحقق فقط من التاريخين exp/nbf المعلنين في الحمولة. ولا تثبت بأي حال أن الرمز أصلي أو أنه لم يُعدَّل: يجب إجراء التحقق التشفيري من التوقيع دائمًا من جهة الخادم، باستخدام المفتاح السري أو العام للمُصدِر.

كيف يعمل

يتكوّن رمز JWT من ثلاثة أجزاء تفصل بينها نقاط: header.payload.signature. يُرمَّز كل من الترويسة (header) والحمولة (payload) بصيغة Base64URL — دون تشفير — لذا يمكن لأي شخص قراءتهما دون مفتاح. وإلى جانب فك الترميز البسيط، تقرأ هذه الأداة الحقلين القياسيين exp (الانتهاء) وnbf («ليس قبل») وتقارنهما بالوقت الحالي لجهازك لتبيّن فورًا ما إذا كان الخادم الذي يلتزم بمعيار JWT سيقبل الرمز أو سيرفضه بناءً على هذا المعيار الزمني وحده.

ماذا يعني exp وnbf بالضبط؟

الحقل exp (الانتهاء) هو طابع زمني بنظام Unix يُعدّ الرمز بعده منتهي الصلاحية. أما nbf («ليس قبل») فهو طابع زمني لا يجوز قبول الرمز قبله، ويفيد في الرموز المجدولة لتصبح فعّالة لاحقًا. كلاهما اختياري: غيابهما يعني أن الرمز نفسه لا يفرض أي قيد زمني من هذا النوع.

الرمز هنا صالح، فلماذا ترفضه واجهة API الخاصة بي رغم ذلك؟

لأن هذه الأداة تتحقق من البنية والتواريخ المعلنة فقط، ولا تتحقق من التوقيع إطلاقًا. وقد ترفض واجهة API الرمز لأسباب أخرى: توقيع غير صالح، أو مُصدِر (iss) أو جمهور (aud) غير صحيح، أو رمز مُلغى من جهة الخادم، أو غياب حقول خاصة بالعمل. ولا يمكن إجراء أي من هذه الفحوص دون الوصول إلى المفتاح السري أو العام للمُصدِر، وهو إجراء يظل دائمًا من جهة الخادم.

الخصوصية: يتم فك الترميز وفحص التواريخ بالكامل داخل متصفحك عبر WebAssembly — ولا يغادر محتوى الرمز، حتى لو كان حساسًا، جهازك أبدًا.