0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
الإعدادات
جهد وتشفير JSON Web Tokens (JWT) باستخدام خوارزميات HS256 و HS384 و HS512 و RS256 و RS512. في الوضع جهد، أكمل المحمل JSON والسر المفتاح لإنشاء الرمز. في الوضع قراءة، قم بلصق رمز موجود لفحص الرأس، المحمل والتحقق من التوقيع.

HMAC مع SHA-256. مفتاح تشفير مشترك. موصى به للاستخدام العام.

كلمة السر
الإنترادا

كيف يعمل

رمز JSON Web Token ‏(JWT) هو رمز مضغوط وموقَّع ينقل معلومات (مطالبات) بين طرفين. يتألف من ثلاثة أجزاء مفصولة بنقاط —الترويسة والحمولة والتوقيع—، كلٌّ مُرمَّز بـ Base64URL.

في وضع الإنشاء تحدّد الترويسة والحمولة بصيغة JSON وتوقّع بمفتاح سري (HMAC) أو بمفتاح خاص (RSA/ECDSA). وفي وضع القراءة تلصق رمزًا موجودًا لفحص محتواه والتحقق من التوقيع.

الحمولة غير مشفَّرة: يستطيع أي شخص قراءتها بفك ترميز Base64URL. لا يضمن التوقيع سوى أن الرمز لم يُعدَّل، ولا يخفيه. لا تضع أبدًا بيانات حساسة في JWT.

أمثلة

header{"alg":"HS256","typ":"JWT"} → eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
payload{"sub":"1234567890","name":"John Doe","iat":1516239022} → eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
tokeneyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5cيعتمد التوقيع (الجزء الثالث) على الخوارزمية والمفتاح؛ يستخدم هذا المثال HS256 بالمفتاح "your-256-bit-secret".

حالات الاستخدام

  • مصادقة المستخدمين في واجهات API: يُصدر الخادم رمزًا موقَّعًا ويتحقق منه في كل طلب دون تخزين جلسة.
  • فحص رموز المصادقة وتصحيحها لرؤية مطالباتها (sub وexp والأدوار) وتواريخها.
  • التحقق من توقيع رمز بالمفتاح السري أو المفتاح العام لتأكيد عدم العبث به.
  • إنشاء رموز اختبار بخوارزميات مختلفة (HMAC وRSA وECDSA) عند تطوير سير عمل للمصادقة.

الأسئلة الشائعة

هل محتوى JWT مشفَّر؟

لا. الترويسة والحمولة مُرمَّزتان بـ Base64URL فقط، ويستطيع أي شخص فك ترميزهما. يضمن التوقيع السلامة (عدم التعديل)، لا السرية.

ما الفرق بين HS256 وRS256؟

يستخدم HS256 مفتاحًا سريًا مشتركًا واحدًا للتوقيع والتحقق (HMAC). أما RS256 فغير متماثل: يوقّع بمفتاح خاص ويتحقق بالعام، وهو مثالي عندما تحتاج خدمات كثيرة إلى التحقق دون القدرة على الإصدار.

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

هي طوابع زمنية قياسية: iat (وقت الإصدار) وexp (وقت الانتهاء) وnbf (غير صالح قبل). تُعبَّر عنها بالثواني منذ 1970 (حقبة يونكس).

لماذا يُنصَح بتجنّب خوارزمية "none"؟

لأنه يُنتج رمزًا بلا توقيع: يستطيع أي شخص تعديل الحمولة وسيظل مقبولًا. لا يصلح إلا للاختبار، ولا يُستخدم أبدًا في الإنتاج.

هل يُرسَل رمزي إلى خادم؟

لا. يجري الإنشاء وفك الترميز والتحقق بالكامل في متصفحك؛ ولا يغادر الرمز ولا المفاتيح جهازك أبدًا.