موقع التخزين المؤقت واسعة مع جانغو - مشاكل مع صفحات محمية بكلمة سر على الخروج

StackOverflow https://stackoverflow.com/questions/1608521

  •  05-07-2019
  •  | 
  •  

سؤال

ولقد نفذت مؤخرا شاملا للموقع التخزين المؤقت باستخدام أعطها على تطبيق جانغو بلدي، لقد تعيين TTL لحوالي 500 ثانية، وتنفيذ لكل عرض مخابئ في أجزاء أخرى من تطبيق ويب .

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

هل كانت مفيدة؟

المحلول

وركضت في قضايا مماثلة. الطريق جانغو القياسية لتعطيل مخبأ للمستخدمين مصادقة.

#settings.py
CACHE_MIDDLEWARE_ANONYMOUS_ONLY=True

وأنه يعمل بشكل جيد إذا مستخدمين مختلفين ترى صفحات مختلفة (على سبيل المثال: اسم المستخدم الخاص بهم عليهم). وأنت لا يمكن أن يكون إصدار واحد بالنسبة لهم

ولكن إذا كان هناك إصدارات فقط 2 من الصفحة: للمستخدمين التأكد من صحتها وللآخرين ثم أنها ليست جيدة لتعطيل تماما مخبأ للمستخدمين مصادقة. كتبت في التطبيق أنه، إلى جانب جميع، وجعل من الممكن لfine- مخبأ يوفق في هذه القضية.

وتحديث.

وراجع للشغل: ذكرتم أنه عند النقر فوق "تحديث" تلقي الإصدار الصحيح من الصفحة. وهو ما يعني أن المشكلة هي ذاكرة التخزين المؤقت جانب العميل (رأس انتهاء مدة الصلاحية أو العلامة E)، ليس من الذاكرة المخبئية الخادم.

لمنع التخزين المؤقت من جانب العميل (عليك أن تفعل ذلك إذا كان لديك عدة نسخ من الصفحة تحت عنوان URL نفسه) استخدام @cache_control(must_revalidate=True) الديكور.

نصائح أخرى

في وجهة نظر محمي بكلمة مرور جزء من الموقع، هل تحقق ما إذا كان المستخدم تم تسجيل أو مجهولة المصدر قبل جلب البيانات (وربما جلب البيانات من ذاكرة التخزين المؤقت)؟

ويجب عليك. جانغو يساعدك، مع تسجيل الدخول المطلوبة الديكور يمكنك وضع على طريقة العرض. تفقد هذا: http://docs.djangoproject.com/en / ديف / المواضيع / المصادقة / # المطلوب من تسجيل الدخول-الديكور

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top