2011-08-08 15 views
10

सुरक्षा यहां कोई समस्या नहीं है।कैसे जांचें कि एक Django उपयोगकर्ता अभी भी क्लाइंट पक्ष से लॉग इन है या नहीं?

मैं प्रदर्शित करने के लिए पृष्ठ पर 'आप उपयोगकर्ता नाम के रूप में लॉग इन किया' की जरूरत है, लेकिन सिर्फ इस तो मैं जावास्क्रिप्ट में यह करने के लिए सक्षम होने के लिए आशा करती हूं कि के लिए कैश से दृश्य को हटाने के लिए नहीं करना चाहती।

मैं इस प्रक्रिया के साथ कुछ भी महत्वपूर्ण नहीं करना चाहता हूं, बस जांचें कि कुकी अभी भी वैध है या नहीं, और यदि यह है, तो स्वागत संदेश प्रदर्शित करें, अधिकतर, लॉगिन लिंक प्रदर्शित करें।

पूरे मुद्दे डेटाबेस हिट नहीं करने के लिए और सर्वर के अतिरिक्त, जैसा कि हम 120000 उपयोगकर्ताओं को इस एक मशीन पर एक दिन में मिल गया है, इसलिए मैं की जरूरत है:

  • django.contrib.auth कुकी का नाम तो मैं पढ़ सकते हैं यह;
  • डेटा मैं तय करने के लिए उपयोगकर्ता अभी भी
  • एक तरह से प्रवेश होने से यह

उपयोगकर्ता नाम निकालने मैं यह करने के लिए एक रास्ता बंद हो जाए तो करने के लिए इसे से पढ़ने के लिए माना जाता रहा हूँ, मैं एक प्रमाणीकरण बैकएंड बनाने के लिए वापस आऊंगा जो लॉग इन करते समय साइन इन पर अतिरिक्त कुकी सेट करता है और उसे हटा देता है।

उत्तर

10

सत्रीय कुकी मौजूद है और इसकी समाप्ति तिथि है। आप यह देखने के लिए जांच सकते हैं कि यह अभी भी मान्य है या नहीं, यह सुझाव देगा कि वे इसे लॉग इन हैं। हालांकि आप इस तरह उपयोगकर्ता नाम नहीं प्राप्त कर सकते हैं, आपको एक कस्टम कुकी जोड़नी होगी।

+0

मैं क्या सोचा है कि। पुष्टि के लिए +1। अगर आप मुझे कुकी का नाम देते हैं तो जवाब स्वीकार करें। –

+0

"सत्रिड" Django सत्र कुकी – seriyPS

+0

का डिफ़ॉल्ट नाम है जैसा कि SeriyPS कहते हैं, मैंने पहले ही किया था :-) –

2

अपने टेम्पलेट में निम्न कोड जैसा है।

{% block top %}<script async="async" defer="defer" type="text/javascript" src="{% static 'users/js/geo.js' %}" 

{% if user.is_authenticated %} data-authenticated="true" {% endif %} 

></script 
>{% endblock %} 

और अगर जाँच अपने तरह कोड के साथ प्रमाणीकृत:

unsafe_authenticated = 'true' === document.currentScript.dataset.authenticated; 
+0

है 'डीजेगो द्वारा' स्थिर 'टैग पहचाना नहीं गया था, लेकिन एक बार जब मैंने नंगे यूआरएल का इस्तेमाल किया तो यह ठीक था। इसके लिए धन्यवाद। – jfunk

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