저는 장고를 백엔드로 사용하고 웹 애플리케이션을 각도를 사용하여 프론트로 만듭니다. 장고 localhost:8000
에서 실행되는 동안Django + Angular + Django-allauth
각도는 localhost:9000
에 보좌관 스택에서 실행하고 나는 각도에서 장고 포트에 /api
전혀 $http
통화를 리디렉션 할 grunt-contrib-proxy
을 사용하고 있습니다. 예를 들어 Angular가 localhost:9000/api/hello
을 요청하면 localhost:8000/api/hello
으로 리디렉션되고 django가이를 처리합니다.
모든 각도 요청을 /api
경로로 제공하기 위해 Django Rest Framework
을 설정하려고합니다.
지금까지 그렇게 좋았습니다.
이제 타사 서비스에 대한 Oauth
인증을 위해 Django-allauth
의 구성 및 작동 설치가 완료되었습니다. 그것은 평범한 오래된 Django를 사용하여 작동하지만 Angular와 함께이 작업을 수행하는 방법을 모릅니다.
장고 rest 프레임 워크를 통해 allauth
뷰를 제공했지만 인증 후 리디렉션은 무엇입니까? 나는 그 주위에 내 마음을 감쌀 수 없다.
이 방법을 사용하지 않고 Oauth 인증을 정면 (각도)에서 직각으로 만드는 것이 더 좋습니까?
편집: 나는 꿀꿀-있는 contrib-프록시에서 각도
에서
을login
보기를 호출하는 관리
은 내가 계정 컨텍스트를 추가하고 규칙을 다시 작성했습니다context: ['/api', '/accounts'], rewrite: { '^/api': '/api', '^/account': '/accounts' }
각도에서 ajax 호출을 만들었습니다. (github에 대한 예를 들어)을 allaluth 로그인보기 위해 :
합니다 (BlaBla 날에 의해 추가 된) :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
$http.get('/accounts/github/login/?process=login')
문제는 내가 돌아올 것입니다. 난 당신이 장고에 보내는 각 요청의 헤더에
Origin: http://localhost:9000
를 추가 할 필요가 내가
어디서나이 문제가 있었습니까? 나는 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
감사합니다. Leonardo, 내가 그렇게해야 할 방법이라고 생각해보십시오. 그 블로그 게시물은 훌륭하게 보입니다. –