اذهب إلى المحتوى
  • 0

لماذا jwt أفضل من sessions

خالد مرتضى

السؤال

Recommended Posts

  • 2

الJWT(JSON web Token) ليست أفضل من الsessions في المطلق, وإنما تقوم بحل بعض المشكلات التي تنتج من إستخدامنا للsessions أو بالأدق المشاكل التي تنتج من إعتمادنا على المصادفة من خﻻل الخادم  (server-side authentication) من تلك المشاكل:

  1. تخزين الsessions, حيث يكون لنا خيارين , إما تخزينها في قواعد البيانات والذي يؤدي إلى زيادة التكلفة وضعف في الأداء نسبياً
  2. الخيار الثاني هو تخزينها في الذاكرة , وذلك ليس حل فعال إن كان التطبيق يتم خدمته من خﻻل أكثر من خادم على أكثر من حاسوب , لأن الذاكرة ليست مشتركة مما قد يسبب مشاكل وأخطاء في عملية المصادقة

أما بالنسبة للjwt فيكون الtoken مُخزن على حاسوب العميل فﻻ يحتاج الخادم إلى تخزينه وﻻ تقابلنا المشاكل السابقة , إذا للjwt المميزات الأتية

  1. أقل في التكلفة حيث لا يحتاج إلى قاعدة بيانات في الأغلب للتخزين
  2. ﻻمركزي, بمعنى أن الرموز(tokens) ليست موجودة في مكان واحد (الخادم) وإنما كل عميل يحمل الرمز الخاص به

ولكن على الجانب الأخر نجد تحديات عند إستخدام الرموز(tokens)

  1. تأمين عملية تخزين الرموز, بما أنها مُخزنة على حاسوب العميل فهذا يجعلها أقل أماناً ويصنع تحدي في عملية الحفاظ عليها
  2. تأمين عملية نقلها عبر الشبكة, حيث أنها تُرسل من قِبل العميل فيُمثل أمر إنتقالها بدون أن يتم التجسس عليها تحدياً بالنسبة للمطورين
  3. عملية تحديد الرموز كغير صالحةinvalid يُعد من الأمور الشاقة نسبياً بالنسبة للمصادقة عبر الجلسات sessions authentication
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

JWT عبارة عن رمز مميز قائم بذاته يحتوي على معلومات توثيق ، ومعلومات وقت انتهاء الصلاحية ويحتوي على معلومات يحددها المستخدم موقعة رقميًا.

محمول: يمكن استخدام رمز واحد مع العديد من backends.

لا توجد ملفات تعريف ارتباط مطلوبة ، لذا فهي ملائمة جدًا للجوّال

أداء جيد: يقلل من وقت الرحلة ذهابًا وإيابًا على الشبكة.

منفصل / لامركزي: يمكن إنشاء الرمز المميز في أي مكان. يمكن أن تحدث المصادقة على خادم المورد ، أو يمكن فصلها بسهولة في الخادم الخاص بها.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
  • الجلسات Session هي طريقة لتخزين البيانات يمكن تنفيذها بطريقتين 
    • تخزين البيانات على الخادم وتوليد معرف لها وارساله للعميل يبرزه عند كل طلب للخادم (تخزين البيانات وادارتها مكلف)
    • تخزين البيانات لدى العميل والاعتماد عليه لابرازها في كل مرة مثل تخزين البيانات في Cookie (لا يمكن الوثوق بأمان البيانات من طرف العميل)
  • JWT هي طريقة لتخزين البيانات بأمان داخل قيمة نصية، ولا يكون الحاجة للخادم ان يقوم بادارة تخزينها (لا كلفة لتخزين البيانات / وثوق عالي بمحتوى البيانات) 
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...