كيف تعمل
- ألصق JWT الخاص بك.
- اقرأ الترويسة والمطالبات وحالة الصلاحية.
- أدخل اختياريًا سرًا أو مفتاحًا عامًا للتحقق من التوقيع.
لماذا تستخدمها
- تواريخ مقروءة لـexp وiat وnbf.
- يتحقق من توقيعات HMAC وRSA وECDSA.
- يعرض تحذيرات خوارزمية مثل none.
- لا يغادر رمزك الصفحة أبدًا.
قراءة رموز JSON Web Tokens والتحقق منها
ما الذي داخل الرمز
رمز JSON Web Token ثلاث قطع من نص Base64 تربطها نقاط: ترويسة وحمولة وتوقيع. الترويسة تسمي خوارزمية التوقيع؛ والحمولة تحمل المطالبات، كهوية المستخدم ووقت انتهاء الرمز؛ والتوقيع يثبت أن صانع الرمز كان يعرف المفتاح. الصق رمزًا فتُفك أول قطعتين وتُعرضان كـJSON، مع تسمية المطالبات القياسية بكلمات بسيطة:
| المطالبة | المعنى |
|---|---|
iss | المُصدِر: الخدمة التي صنعت الرمز |
sub | الموضوع: معرّف المستخدم عادةً |
aud | الجمهور: الخدمة المقصودة بالرمز |
exp | الانتهاء: بعد هذه اللحظة يجب رفض الرمز |
nbf | غير صالح قبل هذه اللحظة |
iat | وقت الإصدار: متى صُنع الرمز |
الفك ليس تحققًا
يستطيع أي أحد فك JWT؛ فالحمولة ليست مشفرة بل مرمّزة فقط. لذا لا تضع أسرارًا في الرمز أبدًا، ولا تثق بمطالبات رمز حتى يُفحص توقيعه. للتحقق من رمز هنا الصق المفتاح:
- HS256 وHS384 وHS512 تستخدم سرًا مشتركًا واحدًا، هو نفسه في الطرفين. فعّل خيار Base64 إن كان السر مخزنًا بتلك الطريقة.
- خوارزميات RS وPS وES تستخدم زوج مفاتيح: يُوقَّع الرمز بمفتاح خاص ويُفحص بالمفتاح العام، الذي يمكنك لصقه كمفتاح PEM أو شهادة أو JWK.
الرمز الموقع بـalg: none لا توقيع له إطلاقًا، ويحذرك المُفكّك: الخادم الذي يقبله سيثق بأي أحد يعدّل الحمولة. ويجب دائمًا إخبار المكتبات بالخوارزميات المقبولة.
أبقِ رموز الإنتاج خاصة
الرمز الصالح مفتاح: من يملكه يستطيع التصرف كذلك المستخدم حتى ينتهي. لهذا يعمل هذا المُفكّك كليًا في متصفحك، ولهذا يجب أن تحذر من الأدوات على الإنترنت التي ترسل الرمز إلى خادم. فضّل رموز الاختبار حين تستطيع، واعتبر أي رمز حقيقي لصقته في مكان عام مسرّبًا.
صنع رموز اختبار
تبويب ترميز يوقّع رموزًا بترويستك وحمولتك ومفتاحك، بأي من الخوارزميات الاثنتي عشرة. ويمكنه إضافة وقت الإصدار وانتهاء بعد عدد تختاره من الدقائق. مفيد لاختبار كيف تتعامل واجهة برمجية مع الرموز المنتهية أو الجماهير الخاطئة أو المطالبات المفقودة، دون لمس تسجيل دخول حقيقي.
إذا حدث خطأ
- يقول إن الرمز غير صالح. يجب أن يحتوي JWT على نقطتين بالضبط. تحقق من أن شيئًا لم يُقطع أثناء النسخ؛ وتُزال كلمة
Bearerالبادئة لك. - التوقيع لا يتحقق. المفتاح خاطئ، أو يجب قراءة السر كـBase64، أو تغيّر الرمز بعد التوقيع.
- يقول إن الرمز منتهٍ، لكن الخادم يقبله. قد يسمح الخادم بهامش في الساعة، أو لا يفحص الانتهاء إطلاقًا، وهذا يستحق الإصلاح.
أسئلة وأجوبة
هل من الآمن لصق رمز حقيقي؟
فك الترميز محلي ولا يُرسل شيء. مع ذلك، عامل رموز الإنتاج كأسرار وفضّل رموز الاختبار حين يكفي ذلك.
هل يمكنه التحقق من توقيع؟
نعم، بالسر المشترك لـHS256 أو المفتاح العام لـRS256 وES256.
لماذا يظهر رمزي منتهي الصلاحية؟
مطالبة exp هي توقيت Unix. تقارنها الأداة بساعة جهازك.