2014-07-09 14 views
5

मैं Django का उपयोग बैकएंड और फ्रंट के लिए कोणीय के रूप में एक वेब अनुप्रयोग बना रहा हूं।Django + Angular + Django-allauth

कोणीय localhost:9000 पर एक Yeoman ढेर पर चल रहा है, जबकि Django localhost:8000 पर चल रहा है और मैं सभी $http कोणीय से Django बंदरगाह के लिए /api पर कॉल पुनर्निर्देशित करने के लिए grunt-contrib-proxy उपयोग कर रहा हूँ। तो उदाहरण के लिए, यदि कोणीय localhost:9000/api/hello के लिए पूछता है तो यह localhost:8000/api/hello पर रीडायरेक्ट होगा और django इसे प्रस्तुत करेगा।

मैं /api पथ के सभी कोणीय अनुरोधों की सेवा के लिए Django Rest Framework सेटअप करने की योजना बना रहा हूं।

अभी तक इतना अच्छा है।

अब, मेरे पास Django-allauth की Oauth प्रमाणीकरण को तृतीय पक्ष सेवाओं के लिए प्रमाणीकरण के लिए पहले से कॉन्फ़िगर किया गया है और काम कर रहा है। यह सादे पुराने डीजेंगो का उपयोग करके काम करता है लेकिन मुझे नहीं पता कि इस काम को कोणीय के साथ कैसे बनाया जाए।

दिमाग में आने वाली एकमात्र चीज django आराम ढांचे के माध्यम से allauth विचारों की सेवा कर रही थी, लेकिन प्रमाणीकरण के बाद पुनर्निर्देशन के बारे में क्या? मैं इसके चारों ओर अपने दिमाग लपेट नहीं सकता।

क्या यह दृष्टिकोण छोड़ना और ओथ प्रमाणीकरण सीधे सामने (कोणीय) से बनाना बेहतर है?

संपादित करें:
मैं घुरघुराना-योगदान-प्रॉक्सी में से कोणीय

  • login दृश्य कहते हैं करने में कामयाब रहा खाता संदर्भ जोड़ा गया है और शासन को फिर से लिखने की है:

    context: ['/api', '/accounts'], 
    rewrite: { 
        '^/api': '/api', 
        '^/account': '/accounts' 
    } 
    
  • मैंने कोणीय से AJAX कॉल किया है, पूछ रहा है (उदाहरण के लिए GitHub के लिए) allaluth लॉगिन देखने के लिए:

    XMLHttpRequest cannot load https://github.com/login/oauth/authorize?scope=&state=BlaBla&redirect…ub%2Flogin%2Fcallback%2F&response_type=code&client_id=BlaBlaBla. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access. (index):1 
    

    (blabla मेरे द्वारा जोड़ा गया है): $http.get('/accounts/github/login/?process=login')

समस्या यह है कि मैं वापस पाने के लिए है। मुझे लगता है कि मैं कुछ पूरी तरह से गलत

+0

क्या आपने कभी इस मुद्दे के साथ कहीं भी जाना है? मैं एक ऐसी परियोजना को स्थानांतरित करने की कोशिश कर रहा हूं जो कोणीय पर अल्लाह का उपयोग करता है और यह मेरा सबसे बड़ा चिपकने वाला बिंदु है। –

+1

@FergalMoran नहीं, मैंने अभी के लिए छोड़ दिया। मैंने [पायथन सोशल ऑथ] पर स्विच किया है (https://github.com/omab/python-social-auth) + [Django Rest Framework] (http://www.django-rest-framework.org/)।मैंने [इस ब्लॉग पोस्ट] का उपयोग किया है (http://blog.wizer.fr/2013/11/angularjs-facebook-with-a-django-rest-api/) शुरुआती बिंदु के रूप में, शुभकामनाएं! – Leonardo

+0

धन्यवाद लियोनार्डो, अनुमान लगाओ कि मुझे भी जाना होगा। वह ब्लॉग पोस्ट बहुत अच्छा लग रहा है, धन्यवाद! –

उत्तर

1

कर रहा हूँ आप अनुरोध है कि कोणीय Django के लिए भेजता में हेडर के लिए एक

Origin: http://localhost:9000 

जोड़ने की जरूरत है।

यह भी सुनिश्चित करें सर्वर Django चल देता है एक

Access-Control-Allow-Origin: * 

see here for more information बनाते हैं।