2016-02-19 4 views
8

विजुअल स्टूडियो 2013 अपडेट 5 का उपयोग करके, मैंने व्यक्तिगत उपयोगकर्ता खाते ऑथ विकल्प के साथ बॉयलरप्लेट एमवीसी 5 एप्लिकेशन बनाया है, और मैं टेम्पलेट कोड का उपयोग करके सामाजिक लॉग इन को लागू करने की कोशिश कर रहा हूं, लेकिन असफल रहा है।क्या किसी को वास्तव में बॉक्स से बाहर काम करने के लिए एएसपी.नेट एमवीसी 5 पहचान फेसबुक लॉग इन मिला है? (loginInfo हमेशा शून्य देता है)

मैंने सुनिश्चित किया है कि सभी NuGet संकुल अद्यतित हैं, और कोड एमवीसी 5.2.3 का उपयोग कर रहा है; ओविन 3.0.1; AspNet.Identity 2.0.0।

मैं सब कुछ ठीक काम कर रहा, OtpSharp का उपयोग कर प्रमाणक ऐप्स भी शामिल हो सकते हैं, लेकिन फेसबुक लॉगिन सिर्फ काम नहीं कर रहा है जो कुछ भी मैं कोशिश करते हैं।

मैं फेसबुक अनुप्रयोग, उस पर सभी प्रासंगिक विकल्प सेट बनाया है और मेरी Startup.Auth.cs फ़ाइल में AppId और AppSecret निर्धारित किया है।

जब मैं फेसबुक के साथ प्रवेश करने का प्रयास करें, MVC साइट फेसबुक, जो मुझे अनुप्रयोग के लिए प्रमाणन की स्क्रीन के साथ संकेत देता है के लिए मुझे पुनर्निर्देश। मैं ठीक क्लिक करता हूं और इसे स्वीकार करता हूं, फिर मुझे एमवीसी ऐप पर रीडायरेक्ट किया जाता है। अगर मैं अपने फेसबुक खाते के तहत अधिकृत ऐप्स की जांच करता हूं, तो मेरा ऐप सूचीबद्ध है और दिखाता है कि उसने ऐप को ईमेल पता पुनर्प्राप्त करने की अनुमति दी है।

कॉलबैक ठीक काम करता है लेकिन जब यह ExternalLoginCallback हिट और विशेष रूप से:

var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync() 

loginInfo हमेशा अशक्त देता है।

अनुरोध को देखते हुए यह पता चलता है access_denied की एक त्रुटि:

https://localhost:44301/Account/ExternalLoginCallback?ReturnUrl=%2Fmanage&error=access_denied 

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

यह प्रतीत होता है कि कुछ टेम्प्लेटेड परियोजना से गायब है, या कुछ और कोई फर्क नहीं पड़ता जो ट्यूटोरियल मैंने पढ़ा है के रूप में कहीं और बदल गया है, और विकल्प मैं निर्धारित करते हैं, परिणाम एक ही है।

मैं एक देव आईआईएस एक्सप्रेस और एक की मेजबानी की मशीन चल रहा है पर बाहर से चल मशीन पर आंतरिक रूप से यह कोशिश की है भी 7.5 IIS और परिणाम एक ही हैं।

मैं भी Microsoft.Owin.Security.Facebook पुस्तकालय decompiled किया है देखने के लिए जहां क्वेरी स्ट्रिंग के उस विशेष खंड कोई मदद नहीं करने के लिए निर्धारित है।

यदि मेरे कोई बाल थे तो मैं इसे अब तक बाहर खींच लेता।

मैं कोई सुझाव लेगा। क्या कोई मदद कर सकता है?

+0

इस पर फिर से देख काम करता है के लिए 3.0.1 Owin.Security.Facebook, मैं तुम्हें स्थानीय होस्ट प्रयोग कर रहे हैं ... मैं एक परीक्षण वातावरण नहीं था सीधे मेरे वर्कस्टेशन पर सेटअप करें, लेकिन यह देखने के लिए जांचें कि क्या आपकी कॉन्फ़िगरेशन यहां उल्लिखित कॉन्फ़िगरेशन से मेल खाती है: http://stackoverflow.com/questions/13376710/facebook-app-domain-name-when-using-localhost –

+0

हाँ, इसकी जांच की गई।मेरे पास ऐप डोमेन में कुछ भी नहीं था, लेकिन इसमें 'लोकलहोस्ट' के परिणाम भी शामिल थे। कोई फर्क नहीं पड़ता। –

+0

@IraRainey क्या आप वाकई एसिंक अनुरोधों को संभालने के बारे में जानते हैं? शायद आप कॉलबैक फ़ंक्शन का उपयोग करने के बजाय तुरंत लॉग संदेश प्रिंट कर रहे हैं। – GuyT

उत्तर

2

फेसबुक चीजों को मुश्किल बनाने के लिए प्यार करता है। Access_denied लगता है जैसे वे आपको उद्देश्य पर अवरुद्ध कर रहे हैं। अपने डेवलपर डैशबोर्ड और विकास मोड में रहते हुए अपने ऐप का परीक्षण करने के लिए अधिकृत खातों की जांच करें। ईमेल अनुमति डिफ़ॉल्ट रूप से अनुमोदित है, इसलिए यह आपकी समस्या नहीं है।

यकीन है कि आप जिस खाते के साथ यहाँ जोड़ा जाता है का परीक्षण कर रहे हैं: यहां डोमेन खंड में सूचीबद्ध

facebook dashboard roles example

कि does not इसे हल करते हैं, तो सुनिश्चित करें कि आप सही ऐप्लिकेशन डोमेन (परीक्षण और रहते हैं) बनाने :

without the domain here, it will think someone else is trying to jack your app

+0

धन्यवाद केली, मैंने इसे चेक किया है और मैं उसी ईमेल पते के साथ ऐप का व्यवस्थापक हूं जिसका मैं परीक्षण कर रहा हूं। मैंने ऐप को सार्वजनिक बनाने और उसी परिणाम के साथ परीक्षण करने का भी प्रयास किया है। –

+0

मेरे उत्तर में और अधिक जोड़ा गया। जिस कारण से मैं आपके द्वारा प्रदान किए गए कोड से सीधे निपट नहीं रहा हूं, क्योंकि जब मैंने अपना ऐप बनाया था तो 10 में से 9 मुद्दों में कोड कोड नहीं था, यह एक विकास डैशबोर्ड कॉन्फ़िगरेशन समस्या थी। –

+0

धन्यवाद कि मैं क्या सोच रहा था, खासकर फेसबुक कॉन्फ़िगरेशन के रूप में बहुत बदल गया है। लेकिन मैंने कोशिश की सभी विकल्पों के परिणामस्वरूप एक ही समस्या है। –

2

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

का उपयोग फ़िडलर फेसबुक आह्वान होगा "http://localhost:1234/signin-facebook&code=SOME_SECRET_CODE_HERE", और फिर अपने आवेदन के नियंत्रक आह्वान होगा "http://localhost:1234/ExternalLoginCallback?error=access_denied"। मुझे यकीन था कि फेसबुक पहुंच से इंकार कर रहा है। यह केवल एक फेसबुक जावास्क्रिप्ट एसडीके नमूना लागू करने के बाद ही था, मुझे एहसास हुआ कि मैं सफलतापूर्वक लॉगिन कर सकता हूं और एफबी स्कॉप्स भी देख सकता हूं!

मेरे देव वातावरण

  • MVC 5 आवेदन
  • विजुअल स्टूडियो 2013 समुदाय संस्करण अद्यतन 5
  • Microsoft.OWIN v2.2.1
  • Microsoft.OWIN.Security। फेसबुक v3.0.1

अंत में मैंने पाया एक YouTube Video by ProCoder जो मान्य OAuth में सही पथ डाल करने के लिए उल्लेख किया यूआरआई अनुप्रेषित रूप http://localhost:1234/signin-facebook और यह काम किया। यदि आपने पहले से जोड़ा नहीं है, तो आपको अपने फेसबुक ऐप में फेसबुक लॉगिन उत्पाद जोड़ना होगा।

मैं भी http://localhost:1234/

को स्थानीय होस्ट करने के लिए ऐप डोमेन और साइट यूआरएल सेट मैं सर्वर IP श्वेतसूची के तहत करने के लिए 127.0.0.1 और MY.EXTERNAL.PUBLIC.IP जोड़ लिया है सुरक्षामें उन्नत सेटिंग्स फेसबुक ऐप का विकल्प।

इन सभी सेटिंग्स को मैंने एक नए एमवीसी 5 एप्लिकेशन में दोहराया और यह एक आकर्षण की तरह काम करता था।

+0

धन्यवाद। जब मैं अगली बार उस खंड को देखता हूं तो मैं इसे आज़मा दूंगा। –

+0

दुर्भाग्यवश ये कदम मेरे लिए काम नहीं करते हैं, मुझे अभी भी शून्य लॉगिनइन –

+0

प्राप्त हो रहा है @ नाथन मेरा डेवेन मेरा जैसा ही है? संभवतः एफबी ने अपने ओएथ कार्यान्वयन को अद्यतन किया। – athar13

1

अद्यतन पैकेज 3.1.0

इसके लिए मुझे

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