كيفية استخدام مولّد JWT
- حرّر JSON الحمولة (مطالبات مثل iss وsub وaud وroles).
- اختر خوارزمية HMAC وأدخل السرّ المشترك الذي تستخدمه واجهة API لديك.
- حدّد اختيارياً مدة انتهاء الصلاحية نسبةً إلى الوقت الحالي (60 دقيقة مثلاً) واختم iat.
- انقر «توليد» وانسخ الرمز الموقَّع إلى ترويسة Authorization لديك.
مزايا مولّد JWT
- ترويسة وحمولة JSON قابلتان للتحرير مع عيّنة واقعية
- توقيع HS256 وHS384 وHS512 باستخدام WebCrypto — لا شيء يغادر المتصفح
- السرّ كنص UTF-8 أو كبايتات مرمَّزة بـ Base64/Base64url
- أدوات مساعدة بنقرة واحدة: «exp من الآن (+دقائق)» و«iat = الآن»
- تنبيهات عند قصر السرّ أو غياب exp أو انتهاء صلاحية الرمز مسبقاً
- يعرض المقاطع الثلاثة وأحجامها وأمر curl جاهزاً للاستخدام
مثال على مولّد JWT
توقيع رمز لاختبار واجهة API
الإدخال:
Payload: {"sub":"user_8f3a2c","aud":"api://orders","roles":["admin"]}
Algorithm: HS256 · Secret: your-256-bit-secret · exp: +60 minutesالنتيجة:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzhmM2EyYyIsImF1ZCI6ImFwaTovL29yZGVycyIsInJvbGVzIjpbImFkbWluIl0sImV4cCI6MTcwMDAwMzYwMH0.<signature>الأسئلة الشائعة حول مولّد JWT
ما الخوارزميات المدعومة؟
HS256 وHS384 وHS512 — عائلة HMAC التي لا تحتاج سوى سرّ مشترك. أما الخوارزميات غير المتماثلة (RS256 وES256…) فتتطلب مفتاحاً خاصاً؛ أنشئ واحداً بمولّد مفاتيح RSA ووقّع بمكتبة الخادم لديك.
كيف أضبط انتهاء الصلاحية نسبةً إلى الوقت الحالي؟
أدخل عدد الدقائق في «ضبط exp من الآن». تستبدل الأداة مطالبة exp بالوقت الحالي مضافاً إليه تلك المدة، ويمكنها أيضاً ختم iat بالوقت الحالي.
كم ينبغي أن يكون طول السر؟
بطول ناتج التجزئة على الأقل: 32 بايتاً لـ HS256، و48 لـ HS384، و64 لـ HS512 (RFC 7518 §3.2). استخدم مولّد الأسرار العشوائية لإنشاء واحد؛ وتنبّهك الأداة عندما يكون السرّ أقصر من ذلك.
هل سيعمل الرمز مع الواجهة الخلفية لديّ؟
نعم، إذا كانت الواجهة الخلفية تستخدم السرّ والخوارزمية نفسيهما وتوقعات المطالبات ذاتها (الجهة المُصدِرة والجمهور وانتهاء الصلاحية). يتبع الناتج RFC 7519 بدقة ويطابق ما تنتجه مكتبات مثل jsonwebtoken وPyJWT وjose للمدخلات نفسها.
هل يُرفع السرّ الخاص بي؟
لا. يتم التوقيع في متصفحك باستخدام crypto.subtle؛ ولا يغادر السرّ ولا الرمز جهازك أبداً.
ملاحظات تقنية
تُسلسَل الترويسة والحمولة كـ JSON مضغوط، ثم تُرمَّزان بـ Base64url دون حشو وتُوصلان بنقطة. يُحسب HMAC لمدخل التوقيع هذا باستخدام crypto.subtle.sign ويُلحق بوصفه المقطع الثالث، تماماً كما يصف RFC 7515. وتُضبط قيمة alg في الترويسة دائماً على الخوارزمية المختارة ليبقى الرمز متسقاً.