2010-09-02 12 views
6

जब कोई उपयोगकर्ता मेरे डोमेन पर जाता है, तो डीजेंगो द्वारा एक सत्रिक जारी किया जाता है। जब वह फेसबुक के साथ ओथ करने की कोशिश करता है, तो वह मेरी साइट पर एक बटन क्लिक करता है जो फेसबुक.com पर रीडायरेक्ट करता है। फेसबुक मेरे डोमेन पर वापस रीडायरेक्ट करता है, लेकिन इस बिंदु पर, उपयोगकर्ता का सत्र खो जाता है और Django एक नया सत्र चर जारी कर रहा है।किसी अन्य डोमेन से रीडायरेक्ट होने पर Django सत्र गिराए जा रहे हैं

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

मुझे संदेह है कि यह django की XSS सुरक्षा से संबंधित व्यवहार हो सकता है। जब उपयोगकर्ता हमारी साइट को फेसबुक पर लॉग इन करने के लिए छोड़ देता है तो मैं उपयोगकर्ता की जानकारी कैसे बना सकता हूं?

+0

क्या आपके मुद्दे के पास http://docs.djangoproject.com/en/1.2/topics/http/sessions/#browser-length-sessions-vs-persistent- सत्रों के साथ कुछ भी करना है? साथ ही, सत्र को छोड़ दिया गया है परिभाषित किया गया है। क्या 'उपयोगकर्ता' में अभी भी इसकी कुकी है? – cpf

+0

सत्र छोड़ दिया गया है इसका मतलब है कि मूल सत्र आईडी कुकी मिटा दी गई है और एक नए के साथ प्रतिस्थापित किया गया है। लिंक के लिए धन्यवाद, ऐसा लगता है कि जब उपयोगकर्ता किसी नई साइट पर जाता है और मूल डोमेन पर वापस आता है तो सत्रों को मिटाया नहीं जाना चाहिए। – Mark

उत्तर

9

आप यह पुष्टि करना चाहेंगे कि कुकीज़ बनाते समय समान डोमेन हो। कभी-कभी समस्याएं पैदा हो सकती हैं। यदि आप www.example.com वेबसाइट पर जा रहे हैं और ओएथ कॉलबैक पॉइंट्स example.com पर जा रहे हैं, तो यह संभव है कि आपके पास दो अलग-अलग कुकीज़ हों, एक www.example.com के लिए और एक उदाहरण के लिए

चालू करें अपने ब्राउज़र पर "हमेशा पूछें" और कुकी विवरण पर ध्यान दें। सुनिश्चित करें कि "होस्ट:" फ़ील्ड का मान दोनों बार समान है।

यह फिक्स .example.com फ़ाइल में SESSION_COOKIE_DOMAIN के लिए कुछ दर्ज कर रहा है।

+0

मैंने आपके सुझाव की कोशिश की और ऐसा लगता है कि समस्या हल हो गई है, धन्यवाद! – Mark

+0

इस पर 2 घंटे x_x की तरह फंस गया था। समाधान के लिए धन्यवाद! – Weaver

+2

यह मेरे साथ हो रहा था क्योंकि मैं 'लोकलहोस्ट' पर शुरू कर रहा था और फिर '127.0.0.1' पर वापस आ रहा था। – Seth

2

मैंने यह भी पाया है कि यदि आपके पास कुकी टकराव से बचने के लिए एक ही डोमेन पर दो Django अनुप्रयोग चल रहे हैं, तो आप प्रत्येक के लिए SESSION_COOKIE_NAME को अलग-अलग सेट करना चाहेंगे।

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