Tworzę aplikację internetową wykorzystującą Django jako backend i Angular dla frontu.Django + Angular + Django-allauth
kątowa jest uruchomiony na Yeoman stos na localhost:9000
podczas Django działa na localhost:8000
i używam grunt-contrib-proxy
przekierować wszystkie połączenia z $http
kątowy z /api
do portu Django. Na przykład, jeśli Angular prosi o localhost:9000/api/hello
, zostanie przekierowane na localhost:8000/api/hello
, a django będzie je wyświetlać.
Mam zamiar skonfigurować Django Rest Framework
do obsługi wszystkich żądań kątowych do ścieżki /api
.
Jak dotąd tak dobrze.
Mam już skonfigurowaną i działającą instalację Django-allauth
do autoryzacji Oauth
dla usług stron trzecich. To działa przy użyciu zwykłego starego Django, ale nie mam pojęcia, jak to zrobić w połączeniu z Angular.
Jedyne, co przychodziło na myśl, to wyświetlanie widoków allauth
za pośrednictwem repozytorium django, ale co z przekierowaniem po uwierzytelnieniu? Nie mogę otoczyć się tym.
Czy lepiej jest zrezygnować z tego podejścia i uczynić autoryzację Oauth prosto z przodu (Angular)?
EDIT:
udało mi się wywołać login
widok z Kątowymi
W grunt-contrib-proxy Dodałem konta kontekst i przepisać regułę:
context: ['/api', '/accounts'], rewrite: { '^/api': '/api', '^/account': '/accounts' }
Wykonałem wywołanie ajax z kąta, pytając dla widoku allaluth logowania (na przykład dla github):
$http.get('/accounts/github/login/?process=login')
Problemem jest to, że wrócę:
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 został dodany przeze mnie). Myślę, że robię coś zupełnie złego
Czy kiedykolwiek dotarłeś do tego problemu? Próbuję przenieść projekt, który wykorzystuje allautha do kątowego i jest to mój największy punkt krytyczny. –
@FergalMoran Nie, zrezygnowałem na teraz. Przełączyłem się na [Python Social Auth] (https://github.com/omab/python-social-auth) + [Django Rest Framework] (http://www.django-rest-framework.org/).Użyłem [tego wpisu na blogu] (http://blog.wizer.fr/2013/11/angularjs-facebook-with-a-django-rest-api/) jako punktu wyjścia, powodzenia! – Leonardo
Dzięki Leonardo, domyślam się, że tak też będę musiał iść. Ten wpis na blogu wygląda świetnie, dzięki! –