2014-11-03 6 views
6

मैंने अपने ऐप में Satellizer को विभिन्न सामाजिक लॉगिन प्रदाताओं (फेसबुक, ट्विटर, Google) के साथ शामिल किया है। मेरे ढेर में शामिल हैं: एंगुलरजेएस (यूआई राउटर) और नोडजेएस/एक्सप्रेस।ओएथ: डायनामिक कॉलबैक यूआरएल कैसे सेट करें?

मुझे उपयोगकर्ता प्रमाणीकरण के लिए गतिशील कॉलबैक यूआरएल स्थापित करने में एक चुनौती का सामना करना पड़ रहा है। मेरा ऐप में एक सतत लॉगिन यूआरएल है जैसे कि http://example.com/login क्योंकि मेरे सभी यूआरएल गतिशील और टोकन आधारित हैं, उदाहरण के लिए: http://example.com/XH12aT1771। असल में, मेरा लॉगिन उपयोगकर्ता अनुभव एक मोडल ओवरले है और कोई निरंतर लॉगिन पृष्ठ नहीं है।

ओएथ के साथ एकीकृत करने में मेरे सिस्टम के साथ चुनौती उपयोगकर्ता को मेरे ऐप में मोडल ओवरले के माध्यम से लॉग इन करने के बाद है, मैं उन्हें वापस सटीक कमरे (या टोकन) में रखना चाहता हूं, उन्हें कुछ पर रीडायरेक्ट नहीं करना कॉलबैक यूआरएल पेज क्योंकि यह एक खराब उपयोगकर्ता अनुभव होगा।

मेरा ओएथ कॉलबैक यूआरएल हार्डकोड करने का एकमात्र तरीका है, जैसे: http://example.com/success और फिर /success पृष्ठ पर क्लिक करने के बाद उपयोगकर्ता को उनके टोकन पर रीडायरेक्ट करें? क्या यह वास्तव में ऐसी चीज करने का एकमात्र तरीका है?

मुझे बताएं कि क्या आपको किसी और प्रश्न के विवरण की आवश्यकता है, मदद के लिए धन्यवाद।

+0

मैं कुछ अनुप्रयोगों के लिए 3 पार्टी Oauth 2 का इस्तेमाल किया है, लेकिन कभी स्थिर कॉलबैक यूआरएल बनाने की आवश्यकता पाया । यह केवल बेस यूआरएल से मेल खाना चाहिए (यानी http: // उदाहरण।कॉम /) और उसके बाद क्या लिखा है इसके बारे में परेशान नहीं होना चाहिए। – Kop4lyf

+0

क्या आपने इसे http: // localhost पर सेट करने का प्रयास किया है? – DaImTo

+1

कॉलबैक यूआरएल आमतौर पर एक विशिष्ट पथ के लिए हार्डकोड किया जाता है। हो सकता है कि आप उन्हें अपने टोकन रूट पर हिट करने का प्रयास कर सकें और फिर उन्हें कॉलबैक यूआरएल में वापस ला सकें? मैं अपने node.js ऐप्स में http://passportjs.org/ पर चिपक जाता हूं इसलिए सुनिश्चित नहीं है कि क्या संभव है। – cchamberlain

उत्तर

1

मैं विकल्पों Sattelizer आप देता है के बारे में पता नहीं होता, और यह भी प्राधिकरण सर्वर (के रूप में) द्वारा समर्थित विकल्पों पर निर्भर करेगा, लेकिन:

एक सुरक्षा परिप्रेक्ष्य यह एक निश्चित का प्रयोग उचित है से कॉलबैक यूआरएल वैसे भी कुछ हमलों को रोकने के लिए जो एएस पक्ष पर टूटे हुए/मैला यूआरएल मिलान के कारण हो सकते हैं, या आरपी पक्ष पर तीसरे पक्षों को आकस्मिक टोकन रिसाव के कारण हो सकता है क्योंकि टोकन का उपभोग नहीं करने वाले पृष्ठों पर एम्बेडेड छवियों/इफ्रेम इत्यादि

इस पर ध्यान दिए बिना कि कोई और तरीका है, फिर भी एक निश्चित कॉलबैक यूआरएल का उपयोग करने के लिए यह अच्छी सुरक्षा अभ्यास होगी और आप उम्मीद कर सकते हैं (उम्मीद है) मूल राज्य पैरामीटर के साथ अल यूआरएल जो इसे भेजा जाता है या इसे कुकी में डालता है और कॉलबैक यूआरएल पर टोकन लेने के बाद इसे बहाल करता है।

1

मैं सैटेलाइज़र से परिचित नहीं हूं, लेकिन मैंने गतिशील यूआरएल आधारित ओथ कॉलबैक संरचना बनाई है।

$callback_url = Configure::read('Your.base') . 'connect/provider/signin/' . $invite_code; 

हम एक अद्वितीय यूआरएल को बंद कर देते हैं, जो किसी को किसी विशिष्ट कमरे में रखता है।

1

मैं सैटेलाइज़र से परिचित नहीं हूं, लेकिन एक संक्षिप्त पढ़ने के बाद, लॉगिन के बाद कॉलबैक यूआरएल को कॉन्फ़िगर करने की संभावना प्रतीत होती है।

// Google 
$authProvider.google({ 
    url: '/auth/google', 
    authorizationEndpoint: 'https://accounts.google.com/o/oauth2/auth', 
    redirectUri: window.location.origin || window.location.protocol + '//' + window.location.host, 
    scope: ['profile', 'email']; 
    scopePrefix: 'openid'; 
    scopeDelimiter: ' ', 
    requiredUrlParams: ['scope'], 
    optionalUrlParams: ['display'], 
    display: 'popup', 
    type: '2.0', 
    popupOptions: { width: 452, height: 633 } 
}); 

यहां वे रीडायरेक्ट यूरी को सीधे स्थान पर कॉन्फ़िगर करते हैं, उपयोगकर्ता वर्तमान में है। देखें Satelizer Configuration

क्या आप यह चीज़ नहीं ढूंढ रहे हैं?

0

लगता है की तरह जवाब होना चाहिए या तो क्या कहा kfis या -

$authProvider.loginRedirect = '/'; // Change this relative path 

प्रति - Satellizer

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