Backbone.js和Django Rest Framework注册和身份验证

时间:2015-01-04 20:59:19

标签: javascript django backbone.js django-rest-framework

我正在使用backbone.js为我的前端创建一个应用程序,并为我的后端创建django-rest-framework。我希望能够注册用户,登录和注销用户,并检查用户是否使用主干登录。

我理解django身份验证的工作原理以及drf如何使用身份验证,但我不知道如何将其绑定到主干身上。

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

如果您的所有应用只能通过用户密码访问,请使用Django的身份验证系统https://docs.djangoproject.com/en/1.7/topics/auth/default/#django.contrib.auth.views.login。制作所有观点@login_required。

现在,如果您想通过ajax调用登录,请按如下方式创建视图:

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 );});

答案 1 :(得分:0)

我在AngularJS中使用django-rest-auth。它为您提供了一组REST API端点来处理用户注册和身份验证任务,并与django-rest-frameworkdjango-allauth完美集成。

要获取用户信息,您需要调用此API:

.../rest-auth/user/

默认情况下,响应为:

username
first_name
last_name
email

但你可以用其他信息扩展它。