我使用Django作爲後端和Angular創建了一個Web應用程序。Django + Angular + Django-allauth
角是上一個localhost:9000
疊約曼運行時,Django是在localhost:8000
運行,我使用grunt-contrib-proxy
所有從角在/api
到Django的端口$http
呼叫重定向。例如,如果Angular要求localhost:9000/api/hello
,這將重定向到localhost:8000/api/hello
,並且django將爲其提供服務。
我打算設置Django Rest Framework
爲/api
路徑提供所有角度請求。
到目前爲止這麼好。
現在,我已經配置了一個Django-allauth
的工作安裝,用於對第三方服務進行Oauth
驗證。它使用普通的舊Django工作,但我不知道如何與Angular結合使用這個工作。
唯一想到的是通過django rest框架服務於allauth
視圖,但認證後重定向怎麼辦?我無法圍住它。
放棄這種方法並使Oauth身份驗證直接從前端(Angular)更好嗎?
編輯:
我設法打電話從角
的
login
視圖在咕嚕-的contrib代理我已經添加了帳戶背景和重寫規則:context: ['/api', '/accounts'], rewrite: { '^/api': '/api', '^/account': '/accounts' }
我從角度做了一個ajax調用,詢問對於allaluth登錄視圖(例如用於github上):
$http.get('/accounts/github/login/?process=login')
的問題是,我回來:
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被我加的)。我覺得我做的事情完全錯誤
你有沒有遇到過這個問題?我試圖將一個使用allauth的項目轉移到角度,這是我最大的困難。 –
@FergalMoran不,我放棄了。我已經切換到[Python Social Auth](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
謝謝萊昂納多,你猜這就是我必須去的方式。那篇博文看起來很棒,謝謝! –