JWT

يعني إيه JWT؟ وليه هو مهم في عالم السوفتوير؟

لو اشتغلت قبل كده على أي تطبيق ويب أو موبايل بيتطلب منك تسجيل دخول (login)، غالبًا سمعت عن حاجة اسمها JWT أو JSON Web Tokens.


ببساطة، الـ JWT دي زي تذكرة أمان بيديهالك السيرفر لما بتعمل تسجيل دخول. كل ما تيجي تدخل التطبيق بعد كده، بتروح تقول للسيرفر "أنا معايا التذكرة بتاعتي!" والسيرفر يسيبك تعدي من غير ما تعيد تسجيل الدخول تاني.

بدل ما السيرفر يحتفظ بمعلوماتك طول الوقت، هو بيديك التذكرة دي ويقولك "احفظها معاك!".


التذكرة دي (أو الـ JWT) مش مجرد كود عشوائي كده، لكن عبارة عن 3 أجزاء:

📍 الـ Header: وده بيكون فيه معلومات بسيطة زي نوع الـ Token وطريقة التشفير المستخدمة.

📍 الـ Payload: وده الجزء اللي فيه المعلومات المهمة زي الـ user ID بتاعك أو الأذونات اللي معاك في التطبيق.

📍 الـ Signature: وده الجزء اللي بيتعمله توقيع عشان نتأكد إن الـ Token ده مش معمول فيه أي لعب أو تعديل من طرفك أو طرف أي حد تاني.


📌 طيب إزاي الـ JWT بيشتغل؟

⚡️ لما بتسجل دخول، السيرفر بيديك Token مشفر، بيكون فيه الـ user ID بتاعك أو أي معلومات تانية بتحدد هويتك.

⚡️ أنت بقى كل مرة تفتح التطبيق، الـ JWT ده بيروح مع كل طلب بتعمله للسيرفر (زي لما تفتح بروفايلك أو تغير إعدادات حسابك).

⚡️ السيرفر بياخد الـ JWT ويتأكد إنه سليم ومفيش حد لعب فيه، ولو كل حاجة تمام، بيسمحلك تكمل طلبك.


🔐 ليه التشفير في الـ JWT مهم؟

التشفير ده اللي بيمنع أي حد من إنه يعدل في البيانات الموجودة في الـ Token. يعني مثلًا لو حد حاول يغير الـ user ID عشان يتظاهر إنه مستخدم تاني، التوقيع الرقمي اللي في الـ JWT هيبقى مش مظبوط، والسيرفر هيعرف إن فيه حاجة غلط وهيمنع الطلب ده.


👀 امتى تستخدم الـ JWT؟

الـ JWT مفيدة لما يكون عندك تطبيق بيعتمد على API وبتحتاج تدي صلاحيات للمستخدمين بدون ما تخليهم يسجلوا الدخول كل شوية. وكمان حلوة في التطبيقات اللي بتشتغل على أكتر من منصة، زي إنك تعمل تسجيل دخول من الموبايل أو الكمبيوتر بنفس الطريقة.


💡 مزايا وعيوب JWT

  • المزايا: سهل الاستخدام، سريع، مش محتاج تخزين معلومات الجلسات على السيرفر (Stateless).

  • العيوب: لو الـ Token باظ أو اتسرق، المستخدم ممكن يكون معرض لخطر، ومدة صلاحية الـ Token لازم تكون مظبوطة عشان تقلل من المشاكل دي.


بالتوفيق يا بطل 🔥