2010-10-06 9 views
14

मुझे अपने फेसबुक कैनवास आईफ्रेम एप्लिकेशन के साथ कोई समस्या है।फेसबुक आईफ्रेम आईई में काम नहीं कर रहा है; सत्र/लॉगिन मुद्दा?

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

हालांकि, यह ऐप; इंटरनेट एक्सप्लोरर को छोड़कर हर ब्राउज़र में काम करता है।

इंटरनेट एक्सप्लोरर में, पृष्ठ परिवर्तन पर यह एक और पृष्ठ परिवर्तन के माध्यम से जाना प्रतीत होता है जो सत्र को अमान्य करता है, और फिर से शुरू होता है। मैंने खोजा और खोजा है, लेकिन इस व्यवहार का कारण नहीं लग रहा है।

मैंने ऐप का स्रोत कोड http://gist.github.com/613083 पर रखा है। ऐप फेसबुक द्वारा प्रदान किए गए मानक PHP एसडीके का उपयोग कर रहा है http://www.github.com/facebook/php-sdk पर।

उत्तर

33

आपको शायद तृतीय पक्ष कुकी समस्या का सामना करना पड़ रहा है। यदि आप रीडायरेक्ट लूप में पकड़े गए हैं तो शायद यह मामला है।

php में समाधान, इस जोड़ें:

header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); 

यह बात साफ हो सही मेरे लिए ऊपर। मुझे एक बुरा रीडायरेक्ट मुद्दा था।

यह क्रॉस डोमेन कुकीज़ को पृष्ठ के लिए काम करने की अनुमति देता है, क्योंकि आपके आईफ्रेम आईई द्वारा फेसबुक के लिए कुकी सेट की जा रही है, यह ठीक है।

+1

यह काम किया। लेकिन मुझे यह जानकर नफरत है कि मेरे पास कोई संकेत नहीं है कि यह वास्तव में क्या कर रहा है या इसके बारे में। क्या कोई विस्तार कर सकता है? फेसबुक की पी 3 पी सहायता साइट (http://fb.me/p3p) मेरे लिए सहायक नहीं थी। –

+0

असल में, यह विंडोज 7 में आईई 9 में समस्या को ठीक करता है, लेकिन विंडोज एक्सपी पर आईई 8 नहीं। क्या इसके लिए कोई स्पष्टीकरण है? –

+0

कभी नहीं, यह आईई 8 में भी काम करता है। मेरे पास एक बग था जो सही दाहिने हेडर नहीं भेज रहा था। –

2

http://adamyoung.net/IE-Blocking-iFrame-Cookies

से हवाला देते हुए "समस्या एक W3C मानक गोपनीयता प्राथमिकताएं या छोटे के लिए पी 3 पी के लिए मंच कहा जाता है के साथ निहित है। आप लिंक के माध्यम से किसी और बस नीचे दिए गए पी 3 पी कॉम्पैक्ट नीति हैडर स्थापित उबाऊ सामग्री के बारे में सब पढ़ सकते हैं या कर सकते हैं यह इंटरनेट एक्सप्लोरर को आपकी तीसरी पार्टी कुकी स्वीकार करने की अनुमति देगा। आपको कुकी सेट करने वाले प्रत्येक पृष्ठ पर हेडर भेजने की आवश्यकता होगी। "

0

मैं इस समस्या के लिए पी 3 पी हेडर या अन्य विषम सामानों का उपयोग किए बिना एक अलग दृष्टिकोण का सुझाव देता हूं। समस्याएं उत्पन्न होती हैं क्योंकि दो अनुप्रयोग अलग-अलग डोमेन पर होस्ट किए जाते हैं। विशेष रूप से, जब आपके एप्लिकेशन को सत्र शुरू करने या क्लाइंट पर कुकी सहेजने की आवश्यकता होती है, तो आपके द्वारा सेट की गई कोई भी कुकी या सत्र 'तृतीय-पक्ष' माना जाएगा। सत्र या कुकीज़ को सफलतापूर्वक सेट करने का एकमात्र तरीका है यदि आपके उपयोगकर्ता पहले से आपके डोमेन पर गए हैं

तो मेरी समाधान है:

  • बजाय आइफ्रेम के साथ पृष्ठ नहीं दिखाया होस्टिंग आवेदन, यह पहले से एक विशेष यूआरएल (: www.yourappsite.com/customer=9rUwkNmawUELbB2 पूर्व) के साथ अपने आवेदन कहता है।
  • आपके आवेदन टोकन की जाँच करता है और अगर यह वैध है की पुष्टि करता है (यह चरण केवल यदि आप अलग अलग ग्राहकों के बीच भेदभाव करने की जरूरत है)
  • अगर ठीक है, एक कुकी क्लाइंट पर सेट (आप कर सकते हैं कि क्योंकि नहीं में अपने ऐप अभी तक एक आईफ्रेम में)
  • फिर यह उपयोगकर्ता को मूल URL पर रीडायरेक्ट करता है (जिसकी आईफ्रेम है जो आपके ऐप को दोबारा कॉल करती है)।

अब से (जब तक पहली कुकी क्लाइंट पर नहीं है) आप सत्र और कुकीज़ का उपयोग कर सकते हैं भले ही आप आईफ्रेम में होस्ट किए गए हों क्योंकि आपका एप्लिकेशन अब विश्वसनीय है।

मैंने सफलतापूर्वक पी 3 पी का उपयोग किए बिना इस मुद्दे को हल किया।

+0

इस सवाल से पूछा गया था - और लगभग चार साल पहले उत्तर दिया। –

+1

हां, लेकिन यह एक सामयिक सवाल है। आज भी किसी को भी इस समस्या का सामना करना पड़ सकता है। –

+0

फेसबुक एप्लिकेशन अब इस मुद्दे से पीड़ित नहीं लग रहे हैं। –

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