8

विफल रहता है: https://web.triller.co/#/user/loginFB.login() के साथ है, लेकिन मैं यहाँ एक फेसबुक जे एस एसडीके लॉग इन प्रवाह है एंड्रॉयड क्रोम पर "असुरक्षित जावास्क्रिप्ट फ्रेम के लिए नेविगेशन आरंभ करने के लिए प्रयास" नहीं डेस्कटॉप क्रोम

उपयोगकर्ता फेसबुक बटन टैप करता है, निम्नलिखित समारोह निष्पादित होने

loginFacebook() 
{ 
    const fbPromise = new Promise((resolve, reject) => { 
     FB.login(resp => { 
      if (resp.authResponse) 
      { 
       resolve(resp.authResponse.accessToken); 
      } 
      else 
      { 
       console.log(resp); 
       reject(new Error('Facebook login canceled or failed.')); 
      } 
     }); 
    }); 

    return fbPromise 
     .then(accessToken => api.postJson('user/login_facebook', { accessToken })) 
     .then(this._handleLogin.bind(this)); 
} 

असल में, यह FB.login() कहता है, और एक मान्य resp.authResponse प्राप्त करने की उम्मीद। दुर्भाग्यवश, यह फेसबुक पॉपअप/टैब पर सफलतापूर्वक प्रमाणीकरण करने के बाद भी नहीं है। इसके बजाय, हम { authResponse: undefined, status: undefined } प्राप्त करते हैं और ब्राउज़र से निम्न त्रुटि:

असुरक्षित जावास्क्रिप्ट नेविगेशन URL को 'https://web.triller.co/#/user/login?_k=cmzdb6' फ्रेम से URL 'https://m.facebook.com/v2.8/dialog/oauth?foo=bar' साथ फ्रेम के लिए शुरू करने के लिए प्रयास करते हैं। नेविगेशन का प्रयास करने वाला फ्रेम लक्ष्य के साथ समान नहीं है, न ही यह लक्ष्य का अभिभावक या सलामी बल्लेबाज है।

त्रुटि तुरंत, फेसबुक पॉपअप/टैब के अंदर के सत्यापन के बाद होता है और यह केवल Android क्रोम पर होता है। डेस्कटॉप क्रोम (मैक पर) एक ही त्रुटि नहीं दिखाता है। आईओएस पर सफारी त्रुटि नहीं दिखाती है, या तो।

क्या हो रहा है पर कोई विचार? एंड्रॉइड क्रोम और डेस्कटॉप क्रोम के बीच अंतर क्यों? क्या यूआरएल में हैश के साथ कुछ करने के लिए हो सकता है?

+0

आप प्रमाणन के लिए एक नई विंडो खोल रहे हैं करने के लिए सही तर्क पारित? –

+0

@ सागरवी 'एफबी.लॉगिन() 'एक नई विंडो खुलता है। मैं 'FB.login()' को कॉल करने और कॉलबैक की प्रतीक्षा करने के अलावा कुछ भी नहीं कर रहा हूं। – Agop

उत्तर

1

डेस्कटॉप में यह समस्या XFINITY कॉन्स्टेंट गार्ड प्रोटेक्शन सूट क्रोम एक्सटेंशन के कारण हो सकती है। इसे निष्क्रिय करें और समस्या हल हो जाएगी।

एंड्रॉइड में, XFINITY या इसी तरह के सुरक्षा एक्सटेंशन या एप्लिकेशन (Norton सुरक्षा एंटीवायरस) को हटाने का प्रयास करें।

https://developer.salesforce.com/forums/?id=906F00000008qKnIAI

1

मैं इसकी वजह से m.facebook.com/... इस https://en.wikipedia.org/wiki/Same-origin_policy#Origin_determination_rules के आधार पर विफल रहता है लगता है (http://en.example.com/dir/other.html के लिए मामले को देखने और क्यों यह विफल रहता है)। हालांकि यह एफबी एपीआई के साथ मैंने जो किया है, उस पर आधारित नहीं होना चाहिए, यह अजीब है, बजाय कामकाज के रूप में एक कॉर्स अनुरोध करने का प्रयास करें?

0

यह एक ज्ञात मुद्दा है https://code.google.com/p/android/issues/detail?id=20254

जब window.open उचित तर्क के बिना बुलाया जाता है, तो यह अपेक्षित के रूप में खोला नहीं जाएगा।

यह ब्राउज़र को अपडेट करके (क्लाइंट के लिए, ब्राउज़र संस्करण की जांच करें और यदि पुराना है, तो उसे अपडेट करने के लिए मजबूर करें) से इसे दूर किया जा सकता है।

अन्यथा (आप के लिए लागू नहीं है क्योंकि आप अमेरिकन प्लान समारोह को बदल नहीं सकते), window.open

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