5

저는 장고를 백엔드로 사용하고 웹 애플리케이션을 각도를 사용하여 프론트로 만듭니다. 장고 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 로그인보기 위해 :

    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')

문제는 내가 돌아올 것입니다. 난 당신이 장고에 보내는 각 요청의 헤더에

Origin: http://localhost:9000 

를 추가 할 필요가 내가

+0

어디서나이 문제가 있었습니까? 나는 allauth를 사용하는 프로젝트를 각도로 움직이기 위해 노력하고 있는데, 이것이 나의 가장 큰 고집 점이다. –

+1

@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

+0

감사합니다. Leonardo, 내가 그렇게해야 할 방법이라고 생각해보십시오. 그 블로그 게시물은 훌륭하게 보입니다. –

답변

1

완전히 뭔가를 잘못하고 있어요 생각합니다.

또한 장고를 실행하는 서버가

Access-Control-Allow-Origin: * 

see here for more information 반환해야합니다.

관련 문제