Sessions: إزالة جلسة عند استخدام FilesystemStore

تم إنشاؤها على ٢٧ يناير ٢٠١٧  ·  3تعليقات  ·  مصدر: gorilla/sessions

مرحبًا ، شكرًا أولاً على هذه الحزمة ، إنها سهلة الاستخدام حقًا.

مشكلة

إذا فهمت بشكل صحيح ، عند استخدام مخزن نظام الملفات للجلسات ، فإن ملفات تعريف الارتباط للجلسة التي يحصل عليها العميل تحتوي فقط على معرفات الجلسات (لأنها ليست CookieStore). تسترد الواجهة الخلفية عند طلب http الجلسة من نظام الملفات وتحميلها في الذاكرة (أو مرة واحدة في الذاكرة وتحتفظ بها للطلبات اللاحقة).

لماذا لا توجد وظيفة لإزالة الجلسات من مخزن نظام الملفات / في الذاكرة؟

السيناريو الحالي الخاص بي هو التالي ؛ عندما يقوم المستخدم بتسجيل الخروج ، أريد حذف الجلسة:

  • يجب حذف ملف الجلسة
  • الطلب التالي مع ملف تعريف ارتباط الجلسة المقدم سيكون غير صالح لأنه لا يمكن العثور على جلسة مطابقة

ومع ذلك ، طالما لم أغير المفتاح الخاص لتوقيع ملفات تعريف الارتباط مطلقًا ، فستظل الجلسة صالحة إلى الأبد.

يمكنني التغلب على هذه المشكلة من خلال وجود علامة على كائن الجلسة تشير إلى أن الجلسة لا تزال صالحة ولكن هذا من شأنه أن يترك لي يدويًا الاضطرار إلى إزالة الجلسات من مخزن نظام الملفات.

طلب

هل من الممكن إضافة وظيفة مثل filesystemStore.RemoveSession(id string) للسماح للمخزن بتنظيف الجلسة من نظام الملفات والجلسات المحملة في الذاكرة؟

documentation

التعليق الأكثر فائدة

سيؤدي تعيين sess.MaxAge(-1) ثم الاتصال بـ sess.Save إلى حذف الجلسة: https://github.com/gorilla/sessions/blob/master/store.go#L213 -L223

محرر المستندات هنا: http://www.gorillatoolkit.org/pkg/sessions#FilesystemStore.Save

يضيف حفظ جلسة واحدة إلى الاستجابة.

إذا كانت Options.MaxAge للجلسة <= 0 فسيتم حذف ملف الجلسة من مسار المخزن. من خلال هذه العملية ، فإنه يفرض التعامل الصحيح مع ملفات تعريف الارتباط للجلسة ، لذلك لا داعي للثقة في إدارة ملفات تعريف الارتباط في متصفح الويب.

نأمل أن يوضح ذلك.

ال 3 كومينتر

سيؤدي تعيين sess.MaxAge(-1) ثم الاتصال بـ sess.Save إلى حذف الجلسة: https://github.com/gorilla/sessions/blob/master/store.go#L213 -L223

محرر المستندات هنا: http://www.gorillatoolkit.org/pkg/sessions#FilesystemStore.Save

يضيف حفظ جلسة واحدة إلى الاستجابة.

إذا كانت Options.MaxAge للجلسة <= 0 فسيتم حذف ملف الجلسة من مسار المخزن. من خلال هذه العملية ، فإنه يفرض التعامل الصحيح مع ملفات تعريف الارتباط للجلسة ، لذلك لا داعي للثقة في إدارة ملفات تعريف الارتباط في متصفح الويب.

نأمل أن يوضح ذلك.

الإغلاق - يرجى إعادة الفتح إذا كان لديك أي أسئلة!

إذا كنت تتساءل عن كيفية التعامل مع الحالة مع ملفات الجلسة المتقادمة ، على سبيل المثال ، تمت مصادقة بعض الجلسات في الوضع الخاص بالمتصفح وبعد ذلك ، من الواضح أنه لن يعود إلى تسجيل الخروج ويعطي إشارة لإزالة ملف الجلسة ، فهل هناك أي طريقة موصى بها للتعامل مع مثل هذه الحالة ؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات