2011-09-30 3 views
25

मैं ट्विटर और फेसबुक के साथ OAuth प्रमाणीकरण किया है। वर्तमान में, इन साइट के प्रत्येक के साथ, अपने सर्वर उपयोगकर्ता एक निर्दिष्ट URL (उदाहरण के लिए, ट्विटर के साथ http://api.twitter.com/oauth/authorize) को अनुप्रेषित, तो कॉलबैक यूआरएल द्वारा प्रमाणीकरण मानकों प्राप्त करते हैं।वर्तमान पृष्ठ से उपयोगकर्ता को रीडायरेक्ट करने के बजाय, ओपन नई विंडो द्वारा ओएथ अनुरोध कैसे कर सकता हूं?

लेकिन इस तरह, उपयोगकर्ताओं को मेरे पृष्ठ (फेसबुक या ट्विटर पर) से रीडायरेक्ट किया जाता है, और इनपुट सही उपयोगकर्ता नाम & पासवर्ड के बाद ही लौटाता है। यह http://techcrunch.com जैसा है जब कोई उपयोगकर्ता किसी पोस्ट को ट्वीट करने का प्रयास करता है।

मुझे याद है कुछ साइट में, मैंने देखा है कि है कि हम बाहर रीडायरेक्ट उपयोगकर्ता द्वारा नहीं कनेक्ट कर सकते हैं, लेकिन इसके बजाय इनपुट साख के लिए उपयोगकर्ता के लिए एक पॉपअप विंडो खोलें। प्रमाणीकरण पूर्ण होने के बाद, पॉप-अप बंद हो गया, मुख्य पृष्ठ नई सामग्री के साथ ताज़ा हो गया।

यह जावास्क्रिप्ट के साथ एक बहुत ही सरल कार्य हो सकता है, लेकिन मैं अभी भी यह समझ नहीं कर सकते हैं। मैं पॉप-अप विंडो में प्रमाणीकरण यूआरएल खोल सकता हूं, लेकिन परिणाम कैसे प्राप्त करें & मुख्य पृष्ठ को अपडेट करें?

उत्तर

43

मान लें कि आप एक पॉप-अप window.open() का उपयोग करने में प्रमाणीकरण यूआरएल खोल रहे हैं, तो आप का उपयोग करके माता-पिता खिड़की पहुँच सकते हैं:

window.opener 

और के लिए पुनः लोड (एक पॉप-अप से) माता-पिता खिड़की का उपयोग करें:

window.opener.location.reload(); 

यह कोड यूआरएल पर कार्य किया जाना चाहिए जिसे आपने ओथ प्राधिकरण के सफलता कॉलबैक यूआरएल के रूप में स्थापित किया है।

सामान्य में, प्रवाह होना चाहिए:

  • एक प्राधिकरण पेज के साथ एक पॉप-अप को खोलने
  • सफल प्राधिकरण चहचहाना के बाद (उदाहरण के लिए twitter.com पर) आपके द्वारा दिए गए यूआरएल के लिए उपयोगकर्ता (पुनर्निर्देश यह बहुत ही पॉप-अप)
  • सलामी बल्लेबाज खिड़की पुनः लोड हो जाता है (window.opener.location.reload() के माध्यम से)
  • पॉप-अप को बंद (जावास्क्रिप्ट का उपयोग कर आप चाहते है)
०१२३५१६४१०६ में खोला जाता है
+0

तुम्हारा मतलब मैं पॉप अप विंडो में जावास्क्रिप्ट डाल यह करने के लिए? –

+6

हाँ, पॉप-अप में, उस पृष्ठ पर जो ओथ प्रमाणीकरण की सफलता कॉलबैक है। तो प्रवाह है: आप एक प्राधिकरण पृष्ठ (उदाहरण के लिए twitter.com पर) के साथ एक पॉप-अप खोलते हैं, सफल प्राधिकरण ट्विटर के बाद उपयोगकर्ता द्वारा आपके द्वारा दिए गए यूआरएल को रीडायरेक्ट करता है (यह उसी पॉप-अप में खोला जाता है), उस पर कॉलबैक पेज जो आपने मेरे उत्तर से जावास्क्रिप्ट डाला है, * ओपनर * विंडो पुनः लोड हो जाती है और आप जावास्क्रिप्ट का उपयोग करके पॉप-अप को भी बंद कर सकते हैं। – WTK

+0

मैं इसे ठीक से आजमाउंगा –

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