2015-01-04 3 views
1

내 프론트 엔드에는 backbone.js를, 백엔드에는 django-rest-framework을 사용하는 앱을 만들고 있습니다. 사용자 등록, 사용자 로그인 및 로그 아웃, 사용자가 백본으로 로그인했는지 확인하고 싶습니다.Backbone.js 및 Django Rest 프레임 워크 등록 및 인증

django 인증 작동 방법과 drf가 인증을 사용하는 방법을 이해하지만 백본에 어떻게 묶을 수 있는지 잘 모르겠습니다.

누구나 올바른 방향으로 나를 가리킬 수 있습니까?

+1

무슨 뜻 이죠 "이제 다음과 같이, 아약스 호출을 통해 그들을 로그인 뷰를 만들려면

백본에 묶어 라 "? javascript의'request.user'와'request.is_authenticated'에 접근 할 수 있습니다. – alejoss

+1

이 질문은 "물어볼 내용이 확실하지 않습니다"라는 질문 중 하나라고 생각합니다. 'urlRoot :/model'과 같은 drf 엔드 포인트를 기반으로하는 백본 모델을 사용하는 경우 .save를 drf에 게시하거나 .delete로 삭제할 수 있지만 사용자와 올바르게 일치하지는 않습니다. 백본보기가 사용자를 등록하거나 사용자를 로그인하는 방법은 무엇입니까? 조언을 주셔서 감사합니다, 나는 이것을 계속 살펴볼 것입니다. – grez

+1

나는 사용자를 등록하거나 로그인하기 위해 백본을 사용한 적이 없다. 나는 당신이'request.user'와 상호 작용하기를 원한다고 생각했다. 그러나 Django 인증 시스템을 활용하고 다른 상호 작용에 Backbone을 사용하는 것이 현명 할 것 같습니다. – alejoss

답변

1

모든 앱에 사용자 비밀번호로만 액세스 할 수있는 경우 Django의 인증 시스템 https://docs.djangoproject.com/en/1.7/topics/auth/default/#django.contrib.auth.views.login을 사용하십시오. 모든 의견을 @login_required로 지정하십시오.

from django.contrib.auth import authenticate 
from django.views.decorators.csrf import csrf_exempt 

@csrf_exempt 
def login_ajax(request): 
    data = json.loads(request.body.decode("utf-8")) 
    user = authenticate(username=data['user'], password=data['pass']) 
    if user:  
     return HttpResponse("OK") 
    else: 
     return HttpResponse("Error", status=401) 

나중에, 당신의 JS에서 템플릿에 :

$.post(/* url where you mapped the login_ajax view */, { user: "John", pass: "abc123" }) 
.done(function(data) { alert("User logged in: " + data);}) 
.fail(function(data) { alert("User not logged in: " + data);}); 
0

저는 AngularJS와 함께 django-rest-auth을 사용하고 있습니다. 사용자 등록 및 인증 작업을 처리 할 수있는 일련의 REST API 끝점을 제공하며 django-rest-frameworkdjango-allauth과 완벽하게 통합됩니다.

.../rest-auth/user/ 

기본적으로 응답은 다음과 같습니다 :

username 
first_name 
last_name 
email 

을하지만 당신은 다른 정보와 그것을 확장 할 수 있습니다

사용자 정보를 얻으려면, 당신은이 API를 호출해야합니다.

관련 문제