كيفية الاستخدام
- انسخ رمزًا من ترويسة Authorization أو ملف تعريف ارتباط أو أدوات المطوّرين في متصفحك. تُزال تلقائيًا بادئة “Bearer ” إن وُجدت.
- الصقه في المربع. ستظهر الترويسة والحمولة بتنسيق JSON.
- تحقق من سطر الحالة وجدول المطالبات لمعرفة الجهة المُصدرة والجمهور وتواريخ انتهاء الصلاحية بالتوقيت المحلي.
- انسخ JSON الخاص بالترويسة أو الحمولة لاستخدامه في مكان آخر.
كيف تعمل الأداة
يتكوّن رمز JSON Web Token (JWT، وفق RFC 7519) بصيغته الشائعة الموقّعة (JWS) من ثلاثة أجزاء مرمّزة بترميز base64url تفصل بينها نقاط. يوضح الترويسة الخوارزمية التي وُقّع بها الرمز، مثل HS256 (HMAC مع SHA-256) أو RS256 (RSA). يتضمن المحتوى المطالبات: بيانات عن المستخدم والرمز نفسه. ويتيح التوقيع للخادم التحقق من أن الترويسة والمحتوى لم يتغيرا.
الترويسة والمحتوى مرمّزان فقط، وليسا مشفّرين. يمكن لأي شخص لديه الرمز قراءة محتواه، وهذا بالضبط ما تفعله هذه الأداة. لا تضع أسرارًا في محتويات JWT.
لا يثبت فك الترميز صحة الرمز. فمن دون مفتاح الجهة المُصدِرة، لا يمكن لأحد معرفة ما إذا كان التوقيع أصليًا، لذا يجب عدم استخدام النتيجة هنا أبدًا لاتخاذ قرار بشأن الوثوق بالرمز. يجب إجراء التحقق على خادمك باستخدام مكتبة JWT محدّثة تتحقق من التوقيع والخوارزمية وexp وnbf وiss وaud.
تشرح الجداول المطالبات المسجّلة. قيم exp وnbf وiat هي من نوع NumericDate: ثوانٍ منذ 1 يناير 1970 بالتوقيت العالمي المنسق UTC. تحوّلها الأداة إلى تواريخ حسب منطقتك الزمنية وتقارنها بساعة جهازك، من دون هامش السماح البسيط الذي تستخدمه الخوادم غالبًا للتعامل مع اختلاف الساعات. إذا كانت ساعة جهازك غير دقيقة، فستكون الحالة غير دقيقة أيضًا.
الرموز المؤلفة من خمسة أجزاء هي رموز JWT مشفّرة (JWE). لا يمكن فك ترميز محتواها من دون المفتاح، لذا لا تعرض الأداة سوى معلومات عن تنسيقها.
أمثلة
لماذا تُرجع واجهة API لديّ الخطأ 401؟
فك ترميز رمز الوصول الذي يرسله تطبيقك. إذا أظهر سطر الحالة «انتهت صلاحيته في …»، فعلى العميل تجديد الرمز. وإذا كانت قيمة aud هي https://api.example.com بينما تستدعي https://api2.example.com، فلن يتطابق الجمهور.
التحقق من رمز ID في OpenID Connect
يتضمن رمز ID من موفّر تسجيل الدخول iss (الموفّر) وsub (معرّف المستخدم الثابت) وaud (معرّف العميل) وiat وexp، بالإضافة إلى مطالبات الملف الشخصي مثل البريد الإلكتروني والاسم. يوضح فك ترميزه المطالبات التي يتلقاها تطبيقك فعلًا.
قراءة مطالبة الطابع الزمني
يتضمن المحتوى "exp": 1735689600. يعرض جدول المطالبات هذه القيمة على هيئة 1 يناير 2025، 00:00:00 UTC، محوّلة إلى التوقيت المحلي، مع توضيح المدة التي مضت عليها أو المدة المتبقية حتىها.
الأسئلة الشائعة
هل تتحقق هذه الأداة من توقيع JWT؟
لا. تفك الأداة ترميز الترويسة والمحتوى فقط. يتطلب التحقق السرّ (في حالة HS256) أو المفتاح العام للجهة المُصدِرة (في حالتي RS256 وES256)، ويجب إجراؤه على خادمك باستخدام مكتبة موثوقة.
هل من الآمن لصق رمزي هنا؟
يُفك ترميز الرمز في متصفحك ولا يُرسل إلى أي جهة. ومع ذلك، يعمل الرمز الصالح ككلمة مرور حتى تنتهي صلاحيته؛ لذا يُفضّل استخدام رموز منتهية الصلاحية أو تجريبية، ولا تلصق أبدًا رموز الإنتاج في أدوات لا تثق بها.
لماذا يستطيع أي شخص قراءة الحمولة؟
تُرمَّز رموز JWT الموقَّعة باستخدام base64url، وهذا لا يعني تشفيرها. تحمي التوقيعات الرمز من التعديل، لا من الاطلاع عليه. إذا كان يجب أن تظل المحتويات سرية، فاستخدم JWT مشفّرًا (JWE) أو احتفظ بالبيانات على الخادم.
ما معنى “exp”، وما وحدة قياسه؟
تمثل exp وقت انتهاء الصلاحية بصيغة NumericDate: عددًا صحيحًا من الثواني (وليس المللي ثانية) منذ 1970-01-01 00:00:00 UTC. يجب رفض الرمز عند حلول ذلك الوقت أو بعده.
لماذا تظهر لي رسالة “ليس base64url صالحًا”؟
يُحتمل أن الرمز قُصّ أو تغيّر أثناء نسخه، مثل فقدان أحرفه الأخيرة أو إحاطته بعلامتي اقتباس أو ترميزه باستخدام URL (مثل %2E بدلًا من النقطة). الصق الرمز الخام تمامًا كما صدر.
الخصوصية
يُفك ترميز الرمز باستخدام JavaScript في متصفحك. لا يُرسل إلى أي خادم ولا يُخزّن ولا يُدرج في بيانات التحليلات. لا يجري التحقق من التوقيع أو البحث عن مفتاح، لذا لا يُرسل أي طلب عبر الشبكة.