2016-02-07 4 views
1

Я работаю над приложением, имеющим backend в Grails и front end в Angular Js.Ролевая аутентификация пользователя в AngularJS и Grails

Может ли кто-нибудь предложить лучший архитектор/дизайн для реализации аутентификации на основе ролей. Например, пользователи-ученики должны иметь возможность видеть определенные страницы и области содержимого на некоторых страницах, Учителя должны видеть другое содержимое, но администратор должен иметь возможность видеть все страницы и содержимое.

enter image description here

как в изображении, на одной странице, один модуль Учитель только, другой только администратора и один блок для каждого.

Заранее спасибо.

ответ

0

Короче говоря, вы можете использовать атрибут $routeProvider как это resolve:

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 Полезно

2

Вы можете использовать Spring Security Core с Spring Security Rest для аутентификации через вызов Ajax с помощью Angular JS.

+0

Мы используем этот подход в производстве в нескольких проектах: он работает. –

+0

Для меня это лучший вариант :) – quindimildev

+0

У вас есть пример его кодирования? –

Смежные вопросы