2016-10-01 16 views
9

के साथ एसपीए (कोणीय 2) में सामाजिक पंजीकरण मैंने सरल कोणीय 2 एप्लिकेशन लागू किया है जो एएसपी.नेट कोर वेबएपी का बैकएंड के रूप में उपयोग करता है। प्रमाणीकरण के लिए मैंने '/ लॉगिन' मार्ग जोड़ा जो जेडब्ल्यूटी एक्सेस को जेनरेट करता है और टोकन रीफ्रेश करता है जो बदले में स्थानीय स्टोरेज में एसपीए द्वारा संग्रहीत किया जाता है और HTTP अनुरोधों में उपयोग किया जाता है।एएसपी.नेट कोर रीस्ट एपीआई

अब मैं सामाजिक पंजीकरण फ़ंक्शन को एकीकृत करना चाहता हूं ताकि उपयोगकर्ता फेसबुक बटन का उपयोग करके लॉगिन कर सकें। उपयोगकर्ताओं के दृष्टिकोण से मैं इसे 3 चरणों में करना चाहता हूं:

  1. फेसबुक बटन द्वारा रजिस्टर पर क्लिक करें और फेसबुक वेबसाइट पर रीडायरेक्ट करें (मेरे ऐप अनुरोध को लॉगिन और पुष्टि करने के लिए)।
  2. क्लिक किया पुष्टि और मेरे एसपीए पर पुनः निर्देशित जहां/पंजीकरण पृष्ठ, जहां उनके नाम पहले से ही फेसबुक प्रोफाइल से भरा
  3. (अपनी पसंदीदा खिलौना की तरह) "समाप्त पंजीकरण"

शेष क्षेत्रों और क्लिक्स भरता इस पंजीकरण के बाद यदि उपयोगकर्ता फिर से फेसबुक के माध्यम से पंजीकरण करता है तो उसे फेसबुक पर रीडायरेक्ट किया जाएगा (यदि वह पहले से लॉग इन है) तो वह स्वचालित रूप से सर्वर रूट पर रीडायरेक्ट हो जाता है जो जांचता है कि ऐसा उपयोगकर्ता पहले ही पंजीकृत है या नहीं और यदि उसे फिर एसपीए होमपेज पर रीडायरेक्ट किया गया है तो

मेरे ऐप में ऐसे वर्कफ़्लो को सही तरीके से एकीकृत कैसे करें? नोट: मैं अपने Angular2 ऐप के अंदर प्रमाणीकरण और पंजीकरण करना चाहता हूं, अलग-अलग ऑथ सर्वर पर नहीं।

+0

आमतौर पर ओएथ प्रमाणीकरण में ओथ प्रदाता सर्वर (पूर्व google, facebook सर्वर) में प्रदर्शन करेगा। मुझे आपके ऐप द्वारा प्रमाणीकरण करने की आवश्यकता नहीं है –

+0

मेरे पास मेरे स्वयं के प्रमाणीकरण/लॉगिन मार्ग से perfomed है। यह आरओपीसी ओएथ 2 प्रवाह का उपयोग करता है। मैं तीस पक्ष प्रमाणीकरण जोड़ना चाहता हूं। यह तीसरे पक्ष की सेवा में उपयोगकर्ता को छेड़छाड़ करने के बाद अपना खुद का जेडब्ल्यूटी टोकन जारी कर रहा है। – Rem

+0

मुझे नहीं पता कि आरओपीसी ओथ प्रवाह क्या है :)। शुभकामनाएं –

उत्तर

5

मैं अपने Angular2 ऐप के अंदर प्रमाणीकरण और पंजीकरण करना चाहता हूं।

आप जो खोज रहे हैं वह Implicit Grant है, फेसबुक के साथ प्राधिकरण सर्वर और संसाधन सर्वर के रूप में। लागू अनुदान एकल पृष्ठ अनुप्रयोगों (जैसे आपका एंगुलर 2 ऐप) के लिए प्राधिकरण का समर्थन करता है, और फेसबुक ग्राफ एपीआई उपयोगकर्ता की जानकारी के लिए अनुरोधों का समर्थन करता है।

मेरे ऐप में ऐसे वर्कफ़्लो को सही तरीके से एकीकृत कैसे करें?

Facebook does not support OpenID Connect के बाद से, आप (जो जाल है से बचने के लिए) OAuth2 छद्म प्रमाणीकरण का उपयोग करने की आवश्यकता होगी। यह एक चार चरण की प्रक्रिया शामिल होगी:,

  1. , लॉगिन करने के लिए फेसबुक के लिए उपयोगकर्ता अनुप्रेषित
  2. रीडायरेक्ट फेसबुक के प्रवेश पृष्ठ से वापस प्रमाणित करें और एक्सेस टोकन संगृहीत
  3. कॉल उपयोगकर्ता की जानकारी का अनुरोध करने के फेसबुक के ग्राफ़ एपीआई संबंधित एक्सेस टोकन के लिए, और
  4. उस उपयोगकर्ता जानकारी को अपने ऐप में फ़ील्ड भरने के लिए उपयोग करें।

तीसरे चरण में एपीआई कॉलिंग कुछ इस तरह दिखाई दे सकता है:

FB.api('/me', (user) => { 
    console.log(user.id); // 101540562372987329832845483 
    console.log(user.email); // [email protected] 
    console.log(user.first_name); // Bob 
}); 

/me एक विशेष ग्राफ़ एपीआई endpoint है कि "translates to the user_id of the person whose access token is currently being used to make the API calls." endpoint तो संबंधित उपयोगकर्ता की जानकारी देता है है।

आपका ऐप अपने क्लाइंट-साइड फ़ील्ड और/या इसके सर्वर-साइड डेटाबेस को पॉप्युलेट करने के लिए Facebook user info का उपयोग कर सकता है। id आपके ऐप के लिए अद्वितीय है और यह फेसबुक user_id के बराबर नहीं है; id विशिष्ट रूप से आपके ऐप के उपयोगकर्ताओं की पहचान करने का एक उचित तरीका है।

आपके ऐप में इस प्रवाह को सही ढंग से एकीकृत करने के लिए चार विकल्प।

एक तरफ: यदि आप OAuth2 छद्म प्रमाणीकरण से क्या मतलब है?

OAuth2, एक छद्म प्रमाणीकरण योजना है, क्योंकि OAuth2 is NOT an authentication protocol. है यही कारण है, के बाद उपयोगकर्ता में लॉग करता है, अपने क्लाइंट ऐप पहुँच टोकन, यह एक संरक्षित एपीआई के लिए अनुरोध करने के लिए उपयोग करता है जो प्राप्त करता है। नुकसान से बचने के लिए, उनसे अवगत होना अच्छा होता है:

  1. एक्सेस टोकन प्रमाणीकरण का सबूत नहीं हैं।
  2. संरक्षित एपीआई तक पहुंच प्रमाणीकरण का सबूत नहीं है।
  3. हमलावर एक्सेस टोकन इंजेक्ट कर सकते हैं।
  4. एक्सेस टोकन में श्रोताओं के प्रतिबंध नहीं हैं।
  5. हमलावर अवैध उपयोगकर्ता जानकारी इंजेक्ट कर सकते हैं।
  6. प्रत्येक पहचान प्रदाता के पास अपना स्वयं का पहचान प्रोटोकॉल हो सकता है।
+0

उत्तर के लिए बहुत बहुत धन्यवाद! क्या आप कह सकते हैं, क्या मुझे इस रणनीति को लागू करने के लिए ओपनआईडिक्ट या एएसओएस का उपयोग करना चाहिए या उनसे बचने के लिए बेहतर है? क्या मैं इसके बाद फेसबुक के बिना पंजीकृत ग्राहकों को लॉगिन करने के लिए आरओपीसी का उपयोग कर सकता हूं? – Rem

+0

एक्सेस टोकन प्रमाणीकरण का प्रमाण नहीं हैं - तो प्रमाणीकरण का लाभ क्या है? – Rem

+0

@Rem OAuth प्रोटोकॉल प्रमाणीकरण प्रोटोकॉल में एक घटक हो सकता है। फेसबुक ने यही किया है - इसने ओएथ के शीर्ष पर अपना स्वयं का पहचान प्रोटोकॉल बनाया है। यह कार्यान्वयनकर्ता पर निर्भर है, इस मामले में फेसबुक, इसे ठीक से कार्यान्वित करने के लिए, क्योंकि ओएथ प्रमाणीकरण की गारंटी नहीं देता है।आम तौर पर, हम फेसबुक पर यह सही ढंग से करने के लिए भरोसा कर सकते हैं, और इस मामले में, प्रमाणीकरण का सबूत फेसबुक के संरक्षित संसाधन तक पहुंच है। –

-3

मैं बस this ट्यूट ऑन ऑथ 0 + ए 2 पर सुझाव दूंगा।

+0

मेरा सवाल प्रोग्रामिंग के बारे में है, लेकिन खरीद सलाह के बारे में नहीं – Rem

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