فك ترميز JSON Web Tokens
رمز JSON Web (المعروف بـ JWT) هو سلسلة نصية مدمجة تُستخدم لنقل معلومات الهوية والصلاحيات بين الأنظمة — وغالباً ما تكون على شكل ترويسة Authorization: Bearer بعد تسجيل الدخول. يبدو الرمز كنص عشوائي، ولكنه يتكون من ثلاثة أجزاء مشفرة بتنسيق Base64URL: ترويسة، وحمولة من المطالبات، وتوقيع. تقوم أداة فك ترميز JWT هذه بتقسيم الرمز، وفك ترميز أول جزأين إلى تنسيق JSON مقروء، مع شرح المطالبات المهمة. تتم عملية فك الترميز والتحقق محلياً، لذا لا يتم إرسال الرمز الخاص بك إلى أي جهة.
الميزات
- فك ترميز الترويسة والحمولة وعرضهما بتنسيق جميل ومقروء، مع زر نسخ لكل منهما.
- شرح مطالبات الوقت: تحويل
iat، وnbf، وexp، وauth_timeمن ثواني Epoch إلى تواريخ حسب منطقتك الزمنية. - التحقق من الصلاحية لمعرفة ما إذا كان الرمز منتهي الصلاحية أو لم يتم تفعيله بعد بنظرة سريعة.
- التحقق من توقيع HMAC لخوارزميات HS256، وHS384، وHS512 باستخدام واجهة Web Crypto API في متصفحك.
- تعمل دون اتصال بالإنترنت بعد تحميل الصفحة؛ ولا يتم إرسال أي بيانات إلى أي مكان.
متى تستخدم هذه الأداة
استكشاف أخطاء المصادقة وإصلاحها. عندما يفشل طلب بخطأ 401 Unauthorized، قم بفك ترميز الرمز للتحقق مما إذا كان منتهي الصلاحية، أو تم إصداره للجمهور الصحيح (aud)، أو يحمل الأدوار والنطاقات المتوقعة.
بناء واختبار واجهات برمجة التطبيقات (APIs). تحقق من أن خادمك يضع المطالبات المقصودة في الرمز، مع أوقات انتهاء صلاحية صحيحة، قبل إطلاق مشروعك.
تعلم كيفية عمل OAuth و OpenID Connect. غالباً ما تكون رموز المعرف (ID tokens) ورموز الوصول (access tokens) من مزودي الهوية عبارة عن رموز JWT. يوضح فك ترميز رمز اختباري المعلومات التي يشاركها المزود حول المستخدم.
بنية JWT
header.payload.signature
- الترويسة — نوع التوكن وخوارزمية التوقيع، على سبيل المثال
{"alg":"HS256","typ":"JWT"}. - الحمولة — المطالبات (claims). تشمل المطالبات المسجلة
iss(المُصدِر)،sub(الموضوع، وعادةً ما يكون مُعرّف المستخدم)،aud(الجمهور المستهدف)،exp،nbf،iatوjti(مُعرّف التوكن). تضيف التطبيقات مطالبات مخصصة مثلnameأوrole. - التوقيع — يتم إنشاؤه عن طريق توقيع
header.payloadباستخدام سر (HMAC) أو مفتاح خاص (RSA، ECDSA، EdDSA). إذا قام أي شخص بتغيير حرف واحد فقط من الترويسة أو الحمولة، فلن يتطابق التوقيع.
نظرًا لأن الحمولة مرمزة فقط، لا تضع أبدًا بيانات سرية مثل كلمات المرور داخل JWT. لفك ترميز بيانات Base64 أخرى، استخدم أداة Base64؛ ولفحص أي طابع زمني، استخدم محول الطابع الزمني Unix.