2014-07-09 39 views
5

Django kullanarak arka uç ve önden açısal olarak bir web uygulaması oluşturuyorum. Django localhost:8000 çalışıyorkenDjango + Angular + Django-allauth

Açısal localhost:9000 bir Yeoman yığın çalışıyorsa ve açısal gelen Django portuna /api tüm $http aramaları yönlendirmek için grunt-contrib-proxy kullanıyorum. Örneğin, eğer Angular localhost:9000/api/hello için sorarsa, localhost:8000/api/hello'a yönlendirilecek ve django buna hizmet edecektir.

Tüm Açısal isteği /api yoluna hizmet vermek için Django Rest Framework kurulumunu planlıyorum. Şimdiye kadar çok iyi.

Artık, üçüncü taraf hizmetlerine Oauth kimlik doğrulaması yapmak için zaten yapılandırılmış ve çalışan bir Django-allauth yüklemesini sahibim. Düz eski Django'yu kullanarak çalışır, ancak bu çalışmayı Angular ile nasıl birleştireceğimi bilmiyorum.

Akla gelen tek şey, django dinlenme çerçevesi aracılığıyla allauth görünümlerini sunmaktı, ancak kimlik doğrulamasından sonra yeniden yönlendirme hakkında ne olacak? Aklımı etrafına dolamıyorum.

Bu yaklaşımın düşürülmesi ve Oauth kimlik doğrulamasının doğrudan önden yapılması (Açısal) daha mı iyidir?

DÜZENLEME

: Ben hırıltı-contrib-vekil yılında Açısal

  • den login görünümü çağırmayı başardı
    Ben hesap bağlamı eklendi ve kural yeniden ettik:

    context: ['/api', '/accounts'], 
    rewrite: { 
        '^/api': '/api', 
        '^/account': '/accounts' 
    } 
    
  • Köşeli bir ajax araması yaptım, soran (Github için örneğin) allaluth giriş görünümü için:

    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 tarafımdan eklenmiştir): $http.get('/accounts/github/login/?process=login')

sorun ben dönene olmasıdır. Ben Sen Django gönderdiği açısal istekte başlığına bir

Origin: http://localhost:9000 

eklemem gerekiyor ben

+0

Bu sorunla hiç bir yere gittiniz mi? Ben allahı kullanan bir projeyi açısal olarak hareket ettirmeye çalışıyorum ve bu benim en büyük yapıştırma noktam. –

+1

@FergalMoran Hayır, şimdilik vazgeçtim. [Python Social Auth] 'a (https://github.com/omab/python-social-auth) + [Django Rest Framework]' e (http://www.django-rest-framework.org/) geçiş yaptım.[Bu blog gönderisini] (http://blog.wizer.fr/2013/11/angularjs-facebook-with-a-django-rest-api/) başlangıç ​​noktası olarak kullandım, iyi şanslar! – Leonardo

+0

Teşekkürler Leonardo, sanırım bu benim de gitmek zorunda olduğum yol. Bu blog yazısı harika görünüyor, teşekkürler! –

cevap

1

tamamen yanlış bir şey yapıyorum düşünüyorum.

Ayrıca Django çalıştıran sunucu, bir

Access-Control-Allow-Origin: * 

see here for more information döndüren emin olun.