2012-07-01 8 views
27

मैंने अपने वेब एप्लिकेशन में कॉन्फ़िगर किया है। मुझे निम्न वर्कफ़्लो में समस्या है:लॉगआउट के बाद, यदि मैं बैक बटन दबाता हूं तो मैं अंतिम पृष्ठ देख सकता हूं जिसके लिए लॉगिन की आवश्यकता है

व्यवस्थापक पैनल तक पहुंचने के लिए मुझे लॉगिन करने की आवश्यकता है। उसके बाद मैं सामान्य रूप से अपने वेब ऐप के व्यवस्थापक पैनल पर नेविगेट करता हूं। जब मैं लॉगआउट पर क्लिक करता हूं तो यह मुझे रूट पेज पर रीडायरेक्ट करता है जो कि अब तक का व्यवहार है।

अजीब चीज तब शुरू होती है जब इस पृष्ठ में और उपरोक्त कार्यों के बाद मैं ब्राउज़र के बैक बटन पर क्लिक करता हूं जो मुझे कैश किया गया अंतिम पृष्ठ दिखा रहा था। मेरा सत्र नष्ट कर दिया गया है क्योंकि यदि मैं रीफ्रेश पर क्लिक करता हूं तो यह मुझे रीडायरेक्ट करता है और यह पृष्ठ तक पहुंचने के लिए लॉगिन करने का उल्लेख करता है, लेकिन मैं ब्राउज़र के अंतिम इतिहास पृष्ठ को देखने में सक्षम नहीं होना चाहता हूं।

यह कैसे संभव है और इसे रोकने के लिए मैं क्या कर सकता हूं? इसे ब्राउज़र कैशिंग के साथ सही करना है? इसे ठीक करने का एकमात्र तरीका इस व्यवहार को रोकने के लिए लॉग इन पृष्ठों से कैशिंग को हटाना है? मैं उसे कैसे कर सकता हूँ?

+0

क्या आप एसएसएल पर स्विच कर सकते हैं? –

+1

आप इन दो लिंक को देख सकते हैं: [1] [1] और [2] [2]। [1]: http://stackoverflow.com/questions/4120289/how-to-clear-browser-cache-after-user-logout-to-prevent-access-to-private-info- v [2]: http://stackoverflow.com/questions/711418/how-to-prevent-browser-page-caching-in-rails – tiktak

उत्तर

53

आप कैशिंग को रोकने के लिए अपने पृष्ठ के हेडर सेट करना चाहते हैं: यह शायद इस सवाल का जवाब आप की जरूरत है।

before_filter :set_cache_buster 

    def set_cache_buster 
    response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate" 
    response.headers["Pragma"] = "no-cache" 
    response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT" 
    end 

क्रेडिट this thread की पहली प्रतिक्रिया को जाता है: आप कि इतने की तरह कर सकते हैं।

+0

नमस्ते, चुड़ैल नियंत्रक में? – Zakos

+0

एप्लिकेशन नियंत्रक – inquisitive

+4

में क्या होता है यदि मैं केवल लॉगआउट के बाद नो-कैश करना चाहता हूं? मुझे लगता है कि यह हर अनुरोध के बाद कैश को हटा देगा। संपत्ति के बारे में क्या है, इसे हटा दिया जाएगा? – fabricioflores

3

यह निश्चित रूप से कैशिंग के साथ करना है। आपको तदनुसार उपयुक्त HTTP शीर्षलेख सेट करना होगा। How to prevent browser page caching in Rails

  • जोहानिस
5

आप ब्राउज़र को यह बताने का प्रयास कर सकते हैं कि सामान कैश न करें लेकिन यह वही है - एक प्रयास।

यदि उन्होंने पहले पृष्ठ को देखा तो आप पृष्ठ को फिर से देखने में सक्षम न होने के लिए बहुत कम कर सकते हैं - यह उस बिंदु पर आपके नियंत्रण से कुछ हद तक बाहर है।

उदाहरण के लिए, पृष्ठ के HTML को डाउनलोड करने से (जो वे पृष्ठ देखते समय वे कर रहे हैं) और आप उन्हें एक स्क्रीनशॉट लेने से रोक नहीं सकते हैं।

यह कहा गया कि ब्राउज़र कैशिंग कुछ (अधिकांश?) मामलों में काम करेगी, माइकल फ्रेडरिक के जवाब का संदर्भ लें।

संबंधित मुद्दे

 संबंधित मुद्दे