مولد JWT
أنشئ JSON Web Tokens موقّعة برأس وحمولة ومفتاح مخصص. يدعم HS256 وRS256 وES256.
ما هو JWT؟
JWT (JSON Web Token) هو معيار مفتوح (RFC 7519) لنقل المعلومات بأمان ككائن JSON مضغوط. يتكون من ثلاثة أجزاء مفصولة بنقاط: Header.Payload.Signature.
ما هي الاستخدامات الشائعة لـ JWT؟
يُستخدم JWT على نطاق واسع للمصادقة (تسجيل الدخول الموحد)، وتفويض API، والتبادل الآمن للمعلومات. بعد تسجيل الدخول، يصدر الخادم JWT يُدرجه العميل في الطلبات اللاحقة لإثبات الهوية.
كيف أختار بين HS256 وRS256 وES256؟
HS256 يستخدم سراً مشتركاً وهو الأسرع، مناسب للخدمات المفردة. RS256 يستخدم أزواج مفاتيح RSA، أفضل للبنيات متعددة الخدمات. ES256 يستخدم مفاتيح المنحنيات الإهليلجية مع أمان عالٍ وتواقيع أقصر.
ما هي مطالبات JWT؟
المطالبات هي بيانات في الحمولة. المطالبات المسجلة تشمل iss (المُصدر)، sub (الموضوع)، exp (الانتهاء)، aud (الجمهور). المطالبات العامة يمكن تسجيلها في IANA. المطالبات الخاصة هي حقول مخصصة متفق عليها.
كيف أتحقق من JWT؟
افكّ ترميز الرأس للحصول على الخوارزمية، ثم استخدم المفتاح المناسب (سر مشترك لـ HMAC، مفتاح عام لـ RSA/ECDSA) للتحقق من التوقيع. تحقق أيضاً من exp وiss وaud.
هل من الآمن إنشاء JWT في المتصفح؟
نعم، تستخدم هذه الأداة Web Crypto API. مفاتيحك ورموزك لا تغادر المتصفح. لا يتم إرسال بيانات إلى أي خادم.
ما الفرق بين الترميز والتوقيع؟
الترميز (Base64) يحول البيانات فقط إلى صيغة قابلة للإرسال ويمكن عكسه من قبل أي شخص. التوقيع ينشئ تجزئة تشفيرية تثبت أن الرمز لم يتم العبث به.
هل يمكن تشفير JWT؟
نعم، JWE (JSON Web Encryption) يُشفّر محتوى الحمولة. JWT القياسي (JWS) يضمن السلامة فقط، لكن الحمولة قابلة للقراءة من قبل أي شخص يملك الرمز.
ما هي أفضل ممارسات أمان JWT؟
حدد دائماً أوقات انتهاء قصيرة. استخدم أسراراً قوية وعشوائية لـ HMAC. خزّن المفاتيح الخاصة بأمان. لا تضع بيانات حساسة في الحمولة. استخدم HTTPS في بيئة الإنتاج.
كيف يقارن JWT بالمصادقة بالجلسات؟
JWT عديم الحالة — الخادم لا يخزن بيانات الجلسة، مثالي للخدمات المصغرة والسيناريوهات عبر النطاقات. الجلسات تتطلب تخزيناً على الخادم لكن تسمح بالإلغاء الفوري.
هل JWT مناسب لتسجيل الخروج وإدارة الجلسات؟
JWT عديم الحالة بحكم التصميم، لذا تسجيل الخروج يتطلب آليات إضافية مثل قوائم الحظر أو رموز قصيرة العمر مع رموز التحديث. استخدم رموز وصول قصيرة العمر (مثلاً 15 دقيقة).
كيف يعمل نمط رمز التحديث مع JWT؟
استخدم رمز وصول قصير العمر (JWT) لاستدعاءات API ورمز تحديث أطول عمراً للحصول على رموز وصول جديدة. عندما ينتهي رمز الوصول، يرسل العميل رمز التحديث للحصول على JWT جديد.
ما هي خوارزمية "none"؟
خوارزمية "none" تعني أن JWT غير موقّع. استخدمها للاختبار فقط. العديد من المكتبات تعطلها افتراضياً للأمان.
هل هناك حدود لحجم JWT؟
لا يوجد حد ثابت لحجم JWT، لكن لأنه يُرسل في ترويسات HTTP، يجب أن يبقى أقل من 4 كيلوبايت. اجعل الحمولة mínima.