如何使用Django和AngularJS实现用户注册?

时间:2013-08-12 12:47:51

标签: django authentication angularjs

我对Django有很好的了解,我刚刚学习了AngularJS。我正在努力实现登录/注册页面。我不确定我是否应该在django app中为Angular提供服务,或者将它与django完全分开并在另一个域上提供服务。

我应该如何使用Django和AngularJS实现用户注册?

1 个答案:

答案 0 :(得分:2)

这取决于您的应用程序以及您打算如何使用AngularJS。

如果只是登录/注册,使用Django的内置auth模块通常就足够了(here)。

完成注册后,您可以在Django模板和AngularJS之间建立强大的耦合。一旦解决了冲突的模板标记(solved here

,它就能很好地运行

如果你有csrf保护,最后一部分可能会很棘手,但是你如何得到你的疑问。您可以从Django服务器生成表单。不幸的是,当你回到表演“经典”的POST时,它有点挫败了angularjs的目的。

另一种选择是使用ngCookies(可用here)获取Cookie并将其添加到$httpProvider.defaults。这样,CSRF令牌将自动添加。

var app = angular.module('MyApp', ['ngCookies']);
app.config(function ($httpProvider) {
    app.$httpProvider = $httpProvider;
});
app.run(['$cookies', function($cookies) {
    app.$httpProvider.defaults.headers.post['X-CSRFToken'] = $cookies['csrftoken'];
    app.$httpProvider.defaults.headers.put['X-CSRFToken'] = $cookies['csrftoken'];
    app.$httpProvider.defaults.headers.delete = {'X-CSRFToken': $cookies['csrftoken']};
}]);

这应该让你开始使用Django和AngularJS进行身份验证。