【问题标题】:Role based User authentication in AngularJS and GrailsAngularJS 和 Grails 中基于角色的用户身份验证
【发布时间】:2016-05-17 01:20:37
【问题描述】:

我正在开发一个应用程序,它在 Grails 中有后端,在 Angular Js 中有前端。

任何人都可以建议最佳架构师/设计来实施基于角色的用户身份验证。例如,学生用户应该能够看到某些页面上的特定页面和内容区域,教师应该能够看到其他一些内容,但管理员应该能够看到所有页面和内容。

如图所示,在一个页面中,一个模块仅供教师使用,另一个模块仅供管理员使用,一个模块适用于所有人。

提前致谢。

【问题讨论】:

    标签: javascript angularjs grails


    【解决方案1】:

    您可以使用带有 Spring Security Rest 的 Spring Security Core 通过 Angular JS 的 Ajax 调用进行身份验证。

    【讨论】:

    • 我们在几个项目的生产环境中使用了这种方法:它很有效。
    • 对我来说,这是最好的选择 :)
    • 你有它的编码例子吗?
    【解决方案2】:

    简而言之,您可以像这样使用$routeProviderresolve 属性:

    module.config(["$routeProvider", "AuthorizationsService",
      function($routeProvider, AuthorizationsService) {
        $routeProvider
        .when("/home", {
          templateUrl: '/home.html',
          controller: 'homeController',
          resolve: {
            access: // call a authorization service
          }
        })
        .when("/student", {
          templateUrl: '/admin.html',
          controller: 'adminController',
          resolve: {
            access: // call a authorization service
          }
        })
        .otherwise({
          redirectTo: "/home"
        });
    

    你需要创建一个工厂来解决或拒绝用户(这将完成所有繁重的工作)

    module.factory("AuthorizationsService", ["$q",
      function($q) {
    
       var checkPermission = function {
         // check and set the permissions from http service
         // return a promise
       };
    
       return {
         checkPermission: checkPermission
       }
    }]);
    

    这个article 有更广泛的解释。 您可能还会发现这个SO article 很有用

    【讨论】:

      猜你喜欢
      • 2016-05-01
      • 1970-01-01
      • 2015-11-19
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 2014-04-04
      • 2015-05-17
      • 1970-01-01
      相关资源
      最近更新 更多