Backbone.js 和 Django Rest Framework 注册和身份验证
Backbone.js and Django Rest Framework registration and authentication
我正在使用 backbone.js 为我的前端创建一个应用程序,为我的后端创建 django-rest-framework。我希望能够注册用户,登录和注销用户,并检查用户是否使用主干登录。
我了解 django 身份验证的工作原理以及 drf 如何使用身份验证,但我不知道如何将它绑定到骨干中。
谁能指出我正确的方向?
如果你的所有应用程序只能通过用户密码访问,请使用 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 );});
我正在使用 django-rest-auth 和 AngularJS。它为您提供了一组 REST API 端点来处理用户注册和身份验证任务,并与 django-rest-framework 和 django-allauth 完美集成。
要获取用户信息,您需要调用此 API:
.../rest-auth/user/
默认情况下,响应为:
username
first_name
last_name
email
但是您可以使用其他信息对其进行扩展。
相关文章:
- Sencha Touch和远程服务器上的身份验证
- Javascript清除缓存以清除基本身份验证凭据
- REST的面向公众的身份验证机制
- 当需要身份验证时,ui路由器不会重定向
- 使用Facebook登录,但仍然可以获得:“;此标识池不支持未经身份验证的访问“;
- AJAX HTTP基本身份验证解决方案
- 身份验证后获取Facebook图片
- 如何对单个页面进行密码保护(这不是身份验证系统的一部分)
- Twitter应用程序专用身份验证
- Passport.js成功的身份验证根本没有调用
- 通过JavaScript访问需要身份验证的页面
- UIWebview赢得't通过基本身份验证加载动态加载的资源(通过jQuery mobile)
- 使用JavaScript捕获基本身份验证凭据
- javascript中的Spotify身份验证
- ServiceStack JavaScript服务器事件客户端的身份验证
- Twitter API 1.1无法对您2进行身份验证
- 注册,登录和分享内容通过LinkedIn和Twitter与服务器端身份验证(如Google+)
- AngularFire身份验证注册
- Backbone.js 和 Django Rest Framework 注册和身份验证
- 使用Javascript对数据库进行用户注册和身份验证