2011-10-21 12 views
8

मैं वर्तमान में http://facebooksdk.codeplex.com का उपयोग कर फेसबुक कनेक्ट के ओएथ कार्यान्वयन का परीक्षण कर रहा हूं।फेसबुक प्रमाणीकरण और अजीब रीडायरेक्ट व्यवहार

2 सरल बादलॉगऑनटैब और कॉलबैक बुलाया कार्यों के साथ एक FacebookController मिल गया है।

सब कुछ ठीक काम करता है और उपयोगकर्ता मेरे सिस्टम में सही ढंग से लॉग इन है।

समस्या

जब कॉलबैक कार्रवाई कहा जाता है, कुछ अजीब होता है कि सही लॉग इन यूआरएल के लिए एक सरल

return Redirect(loggedUrl); 

पुन: निर्देशित हो बनाता है लेकिन निम्न वर्णों के साथ समाप्त होता है: #_=_

ऐसा नहीं है कि प्रतीत होता है फेसबुक सर्वर निम्न HTTP शीर्षलेख का उपयोग कर मेरे वेबसर्वर को जानकारी भेजता है:

HTTP/1.1 302 Found 
Cache-Control: private, no-cache, no-store, must-revalidate 
Expires: Sat, 01 Jan 2000 00:00:00 GMT 
Location: http://mywebsite.com/Facebook/CallBack/?state=1&code=AQCXexr10uxANSBOu9JqrBDxqPkWbsyxM1S9ltuY9XwCXW7eGsOII329SthClxOSM_a7wJvwrXh1_O3D5I7E_nxCDTWDLpyYdMpMUfw4zMWcQ4oV2PmRkIMd2NfPYRKlkLgkurEzka1CjAF1jp8Xb3crklOB59W4IT7LZy6MEmFusuhSKacmsTcV1LAOW4uJ3K4#_=_ 
P3P: CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p" 
Pragma: no-cache 
Set-Cookie: locale=en_US; expires=Fri, 28-Oct-2011 00:09:38 GMT; path=/; domain=.facebook.com 
Content-Type: text/html; charset=utf-8 
X-FB-Server: 10.43.103.61 
X-Cnection: close 
Date: Fri, 21 Oct 2011 00:09:38 GMT 
Content-Length: 0 

जैसा कि आप देख सकते हैं हम सी स्थान मान के अंत में #_=_ वर्ण खोजें।

ऐसा लगता है कि रीडायरेक्ट #_=_ वर्णों को स्वचालित रूप से logUrl में जोड़कर खाते में ले रहा था।

यहां तक ​​कि जब मैं return Redirect("/"); के साथ प्रयास करें, #_=_ (लगभग) से कहीं मेरी रीडायरेक्ट URL को ...

किसी भी विचार वास्तव में सराहना की जाएगी जोड़ा जाता है।

किसी भी उत्तर के लिए अग्रिम धन्यवाद।

सादर,

पौंड

+1

इससे jQuery मोबाइल के यूआरएल हैश सुनने के साथ समस्याएं आईं। '$ .mobile.hashListeningEnabled = false; 'इसे हल किया। –

उत्तर

2

फेसबुक उनकी प्रतिक्रिया के अंत करने के लिए इस # = पात्रों जोड़कर हाल ही में अपने प्रमाणीकरण तंत्र में संशोधन किया है। स्ट्रिंग के अंत में # प्रतीक वास्तव में समस्या पैदा कर रहा है। तो आप या तो क्वेरी को छोटा कर सकते हैं और रीडायरेक्ट कर सकते हैं जो ठीक काम करेगा।

+0

आपका मतलब क्या है कि क्वेरी को छोटा करें? – capdragon

+0

@ कैपड्रैगन: यूआरएल प्राप्त करें, अंत में # = हटाएं और किसी भी विधि (AJAX, रीडायरेक्ट इत्यादि) का उपयोग करके url requrest को पुन: जारी करें। –

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