2

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

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

4

1 回答 1

2

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

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

注册完成后,您可以在 Django 模板和 AngularJS 之间建立强耦合。一旦你解决了冲突的模板标签,它就会很好地工作(在这里解决

如果您启用了 csrf 保护,最后可能会比较棘手的部分是您如何获取查询。您可以从 Django 服务器生成表单。不幸的是,当您回到执行“经典”POST 时,它有点违背了使用 angularjs 的目的。

另一种选择是使用 ngCookies(可在此处获得)获取 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 进行身份验证。

于 2013-08-12T14:32:55.140 回答