Django Rest Framework + Angular.js Web应用程序中的用户身份验证

bpipat

我正在开发一个Webapp,用户可以在其中登录以查看其在线酒窖。

我已经安装了Django REST模型,以及Angular的前端设计,但是我很难将各个部分放在一起,主要问题是用户身份验证。

我已经阅读了许多关于此处和各种教程的文章,但似乎找不到逐步实现身份验证的方法:

  • 应该使用哪种身份验证(令牌,会话,其他?)
  • 如何在服务器端管理身份验证(它是视图吗?是UserModel或UserManager中的方法?)
  • 我有一个自定义的用户模型(使用电子邮件作为用户名)。我可以使用通用的Django登录方法,还是需要创建自己的登录方法?
  • 服务器和客户端之间如何管理身份验证过程?

据我了解,Angular在URL上发出POST请求,其中DRF验证用户名和密码是否匹配,并返回令牌或其他身份验证证明。

我感觉自己已经接近了,但是我需要更全面的了解如何将各个部分组合在一起。

提前致谢

扎克·阿盖尔

我想有很多方法可以做到这一点,让我解释一下我所做的事情,希望对您有所帮助。这将是一个漫长的职位。我很想听听其他人如何做到这一点,或者更好的方法来实现相同的方法。您也可以在Angular-Django-Seed的Github上查看我的种子项目

我将令牌身份验证与Witold Szczerba的http-auth-interceptor一起使用他的方法的优点在于,每当从您的站点发送没有适当凭据的请求时,您都会被重定向到登录屏幕,但是您的请求将排队等待登录完成时被重新触发。

这是与登录表单一起使用的登录指令。它发布到Django的auth令牌端点,使用响应令牌设置cookie,使用令牌设置默认标头,以便所有请求都将通过身份验证,并触发http-auth-interceptor登录事件。

.directive('login', function ($http, $cookieStore, authService) {
return {
  restrict: 'A',
  link: function (scope, elem, attrs) {

    elem.bind('submit', function () {
      var user_data = {
            "username": scope.username,
            "password": scope.password,
      };

      $http.post(constants.serverAddress + "api-token-auth", user_data, {"Authorization": ""})
          .success(function(response) {
              $cookieStore.put('djangotoken', response.token);
              $http.defaults.headers.common['Authorization'] = 'Token ' + response.token;
              authService.loginConfirmed();
          });
    });
  }
}

})

我使用模块.run方法来设置用户访问网站时对cookie的检查,如果他们设置了cookie,则我设置了默认授权。

.run(function($rootScope) {
  $rootScope.$broadcast('event:initial-auth');
})

这是我的拦截器指令,用于处理authService广播。如果需要登录,我将隐藏所有内容并显示登录表单。否则,隐藏登录表单并显示其他所有内容。

.directive('authApplication', function ($cookieStore, $http) {
    return {
        restrict: 'A',
        link: function (scope, elem, attrs) {

          var login = elem.find('#login-holder');
          var main = elem.find('#main');

          scope.$on('event:auth-loginRequired', function () {
            main.hide();
            login.slideDown('fast');
          });

          scope.$on('event:auth-loginConfirmed', function () {
            main.show();
            login.slideUp('fast');
          });

          scope.$on('event:initial-auth', function () {
             if ($cookieStore.get('djangotoken')) {
               $http.defaults.headers.common['Authorization'] = 'Token ' + $cookieStore.get('djangotoken');
             }
             else {
               login.slideDown('fast');
               main.hide();
             }
          });
        }
     }
  })

要使用它,我所有的html基本上都是这样的。

<body auth-application>
  <div id="login-holder">
    ... login form
  </div>

  <div id="main">
    ... ng-view, or the bulk of your html
  </div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django Rest Framework + Ember.js + rest身份验证

来自分类Dev

Django Rest Framework / Angular JS Preflight选项

来自分类Dev

Django Rest Framework / Angular JS Preflight选项请求

来自分类Dev

如何在Django REST Framework中禁用身份验证

来自分类Dev

从Django Rest Framework中的令牌获取经过身份验证的用户

来自分类Dev

通过在 DRF 中扩展用户模型进行身份验证(Django Rest Framework)

来自分类Dev

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

来自分类Dev

使用Django REST Framework作为Django的身份验证后端

来自分类Dev

在具有Angular前端的简单Django Rest Framework应用程序中会发生什么?

来自分类Dev

在 Django Rest Framework + Angular 应用程序中进行 CSRF 保护的推荐方法是什么?

来自分类常见问题

Django Rest Framework-未提供身份验证凭据

来自分类Dev

Django Rest Framework令牌身份验证失败导致弹出

来自分类Dev

Django Rest Framework避免身份验证JWT

来自分类Dev

间歇性故障:Django Rest Framework身份验证

来自分类Dev

使用Nginx和Django Rest Framework的身份验证问题

来自分类Dev

Django Rest Framework令牌身份验证失败导致弹出

来自分类Dev

如何在Django REST Framework中使用身份验证

来自分类Dev

如何使用 Postman 对 Django REST Framework 进行身份验证

来自分类Dev

Django Rest Framework JWT 未提供身份验证凭据

来自分类Dev

向django-rest-framework-simple-jwt添加自定义用户身份验证

来自分类Dev

Django Rest Framework:更改序列化程序或基于身份验证添加字段

来自分类Dev

客户端JS + Django Rest Framework

来自分类Dev

Angular 2 前端 django 2 REST 框架后端用户身份验证

来自分类Dev

django-rest-framework身份验证:是否需要URL中的关键参数?

来自分类Dev

如何允许使用未经身份验证的请求访问Django Rest Framework中的某些视图?

来自分类Dev

Django REST Framework 中自定义身份验证的返回值

来自分类Dev

在Django Rest Framework视图中测试身份验证-测试时无法进行身份验证

来自分类Dev

Django Rest Framework自定义身份验证+基本身份验证

来自分类Dev

用户和应用程序的REST API身份验证

Related 相关文章

  1. 1

    Django Rest Framework + Ember.js + rest身份验证

  2. 2

    Django Rest Framework / Angular JS Preflight选项

  3. 3

    Django Rest Framework / Angular JS Preflight选项请求

  4. 4

    如何在Django REST Framework中禁用身份验证

  5. 5

    从Django Rest Framework中的令牌获取经过身份验证的用户

  6. 6

    通过在 DRF 中扩展用户模型进行身份验证(Django Rest Framework)

  7. 7

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

  8. 8

    使用Django REST Framework作为Django的身份验证后端

  9. 9

    在具有Angular前端的简单Django Rest Framework应用程序中会发生什么?

  10. 10

    在 Django Rest Framework + Angular 应用程序中进行 CSRF 保护的推荐方法是什么?

  11. 11

    Django Rest Framework-未提供身份验证凭据

  12. 12

    Django Rest Framework令牌身份验证失败导致弹出

  13. 13

    Django Rest Framework避免身份验证JWT

  14. 14

    间歇性故障:Django Rest Framework身份验证

  15. 15

    使用Nginx和Django Rest Framework的身份验证问题

  16. 16

    Django Rest Framework令牌身份验证失败导致弹出

  17. 17

    如何在Django REST Framework中使用身份验证

  18. 18

    如何使用 Postman 对 Django REST Framework 进行身份验证

  19. 19

    Django Rest Framework JWT 未提供身份验证凭据

  20. 20

    向django-rest-framework-simple-jwt添加自定义用户身份验证

  21. 21

    Django Rest Framework:更改序列化程序或基于身份验证添加字段

  22. 22

    客户端JS + Django Rest Framework

  23. 23

    Angular 2 前端 django 2 REST 框架后端用户身份验证

  24. 24

    django-rest-framework身份验证:是否需要URL中的关键参数?

  25. 25

    如何允许使用未经身份验证的请求访问Django Rest Framework中的某些视图?

  26. 26

    Django REST Framework 中自定义身份验证的返回值

  27. 27

    在Django Rest Framework视图中测试身份验证-测试时无法进行身份验证

  28. 28

    Django Rest Framework自定义身份验证+基本身份验证

  29. 29

    用户和应用程序的REST API身份验证

热门标签

归档