ما هو JWT؟
JSON Web Token (JWT) رمز نصي تستعمله تطبيقات الويب وواجهات API لإثبات هوية المستخدم بعد تسجيل الدخول. يتكون من ثلاثة أجزاء مفصولة بنقاط: الترويسة (نوع الخوارزمية)، والحمولة (بيانات مثل معرّف المستخدم وتاريخ الانتهاء)، والتوقيع الذي يمنع التلاعب بالجزأين الأولين.
نقطة يجهلها كثيرون: الترويسة والحمولة مرمّزتان وليستا مشفّرتين. أي شخص يحصل على الرمز يستطيع قراءة محتواه، وهذا بالضبط ما تفعله هذه الأداة.
كيف تستخدم الأداة؟
- الصق الرمز (مع كلمة Bearer أو بدونها).
- تعرض الأداة الترويسة والحمولة بصيغة JSON منسقة.
- تُحوَّل التواريخ (exp وiat وnbf) إلى تاريخ مقروء مع المدة المتبقية أو المنقضية.
- راجع الملاحظات الأمنية: خوارزمية none، غياب تاريخ الانتهاء، طول الصلاحية، أو بيانات حساسة داخل الحمولة.
المطالبات القياسية
| المطالبة | المعنى |
|---|---|
iss | الجهة التي أصدرت الرمز |
sub | صاحب الرمز (غالباً معرّف المستخدم) |
aud | التطبيق الموجّه إليه الرمز |
exp / nbf / iat | الانتهاء / لا يُقبل قبل / تاريخ الإصدار (بالثواني منذ 1970) |
ممارسات أمنية جيدة للمطورين
- تحقق دائماً من التوقيع في الخادم، وحدّد الخوارزميات المقبولة مسبقاً؛ لا تثق بقيمة alg القادمة في الرمز.
- اجعل رموز الوصول قصيرة العمر (دقائق إلى ساعات) واستعمل رموز تحديث عند الحاجة.
- لا تضع كلمات مرور أو بيانات بطاقات أو أسراراً في الحمولة.
- تعامل مع الرمز ككلمة مرور: لا تنشره في لقطات الشاشة أو المنتديات.
فك الترميز يتم داخل متصفحك، ولا يُرسل الرمز إلى أي خادم. لحساب توقيعات HMAC يمكنك استعمال مولّد التجزئة.