JWT مقابل المصادقة القائمة على الجلسة
تعرف على الفروقات بين المصادقة القائمة على الجلسة و JWT. استكشف المفاضلات، المزايا، وحالات الاستخدام لاختيار نظام المصادقة المناسب لتطبيقاتك.
بشكل عام، الخطوة الأولى في استخدام تطبيق ما هي المصادقة، حيث يقدم المستخدم النهائي بيانات الهوية الخاصة به لتسجيل الدخول بنجاح. بعد هذه الخطوة، يعرف نظام الهوية (مثل مزود الهوية، خادم المصادقة، إلخ) من هو المستخدم وإلى أي الموارد لديه وصول.
نظراً لأن HTTP هو بروتوكول غير دائمي بطبيعته، فإن كل طلب في جلسة يكون مستقلاً ولا يسترجع المعلومات من الطلبات السابقة. إعادة المصادقة على المستخدمين لكل إجراء مرهقة وتؤثر على تجربة المستخدم.
دعونا ندخل في المصادقة القائمة على الجلسة و مصادقة JWT (JSON Web Tokens)، وهما طريقتان شائعتان للحفاظ على حالة المصادقة. لكل منهما مزاياه وتنازلاته الفريدة، وتتمثل الاختيار بينهما في تحديد احتياجات تطبيقك الخاصة. إذا كنت تقرر بين الاثنين، فإن هذا الدليل موجود هنا للمساعدة.
ما هي المصادقة القائمة على الجلسة؟
تعتمد المصادقة القائمة على الجلسة على الخادم للاحتفاظ بسجل لحالة مصادقة المستخدم. من خلال إنشاء وإدارة الجلسات، يمكن للخادم تمكين المستخدمين من الاستمرار في تسجيل الدخول والتفاعل مع التطبيق دون الحاجة إلى إعادة إدخال بيانات الوصول الخاصة بهم مع كل طل ب.
كيف تعمل المصادقة القائمة على الجلسة؟
إنشاء الجلسة
- يقوم المستخدم بالمصادقة وتقديم بعض بيانات الاعتماد (مثل البريد الإلكتروني وكلمة المرور).
- إذا كانت بيانات الاعتماد صالحة، يقوم الخادم بإنشاء سجل مستمر يمثل تلك الجلسة. تحتوي الجلسة على معلومات مثل سلسلة عشوائية، معرف المستخدم، وقت بدء الجلسة، وقت انتهاء الجلسة، إلخ.
- يتم تخزين
SessionID
في قاعدة البيانات وتعيده إلى العميل كمجموعة ملفات تعريف الارتباط.
التحقق من الجلسة
- يمكن تشغيل العملية يدوياً من قبل المستخدم (مثل النقر على علامة تبويب، تحديث الصفحة) أو تلقائياً من قبل العميل (مثل أثناء تحميل الصفحات الأولية أو عبر نداءات API باستخدام
SessionID
). - يتم إرسال كل نداءات لاحقة من HTTP من العميل تحتوي على ملفات تعريف الارتباط الخاصة بالجلسة إلى الخادم.
- يقوم الخادم بالتحقق من صلاحية
SessionID
عن طريق استشارة بيانات الجلسة المخزنة على الخادم. - إذا كانت صالحة، يقوم الخادم بمعالجة الطلب والمصادقة على المستخدم.
كيفية إلغاء جلسة؟
يمكن إبطال الجلسات في الوقت الحقيقي، مما يكون مفيداً في حالات الحاجة إلى إلغاء الوصول بسرعة.
- تسجيل خروج المستخدم يدوياً: يقوم الخادم بحذف سجل الجلسة، مما يؤدي فعلياً إلى تسجيل خروج المستخدم.
- المدراء يفرضون تسجيل الخروج: يمكن للمدراء أو الأنظمة إنهاء جلسة محددة بحذفها من قاعدة البيانات. على سبيل المثال، أثناء خرق أمني.
- انتهاء الجلسات: يمكن أن تنتهي صلاحية الجلسات تلقائياً بعد فترة معينة من عدم النشاط، أو حد زمني ثابت.
مزايا المصادقة القائمة على الجلسة
- بسيطة وموثوقة: يوفر سجل الجلسة مصدر واضح ومركزي، مما يتيح درجة عالية من الثقة ويجعل قرارات التفويض أكثر موثوقية.
- إبطال في الوقت الحقيقي: عن طريق حذف أو إبطال سجل الجلسة، يمكن إلغاء وصول المستخدم بسرعة.