Использование Adal.js с $stateProvider

У нас есть AngularJS SPA, и мы используем Adal.js для аутентификации. До сих пор мы обрабатывали маршруты, используя $routeProvider (модуль ngRoute), но из-за некоторых недавних требований нам нужно отойти от метода провайдера маршрута и принять $stateProvider (в ui-router). Однако наш механизм аутентификации должен оставаться аналогичным. Может ли adal.js работать с $stateProvider так же, как с $routeProvider?
Мы используем параметр requiredADLogin в маршрутах, чтобы указать, какие маршруты требуют проверки подлинности Azure AD. Код выглядит следующим образом:

app.config(['$routeProvider', '$httpProvider', 'adalAuthenticationServiceProvider', function ($routeProvider, $httpProvider, adalProvider) {

$routeProvider
    .when('/', {
        controller: 'homeCtrl',
        templateUrl: '/Templates/home.html',
        requireADLogin: true
    })
    .otherwise({
        //template: "Invalid"
        redirectTo: '/'
    });

При переходе на $stateProvider будет действительным код, подобный приведенному ниже:

app.config(function($stateProvider, $urlRouterProvider) {
           $stateProvider
        .state("dashboard", { url: "/dashboard", templateUrl: "Templates/dashboard.html" })
            .state("health", { 
                parent: "dashboard", 
                url: "/agent_tier1", 
                templateUrl: "Templates/health.html",
                requireADLogin: true 
        })
});

Или если мы можем поместить свойство requireADLogin в родительское состояние.


person Pratik Bhattacharya    schedule 12.10.2015    source источник


Ответы (2)


adal.js будет работать с ui-router, requireADLogin должен быть в каждом состоянии, которое вы хотите защитить, а не только в родительском состоянии.

person Wei Jia    schedule 13.10.2015

Если вы используете компонентный маршрутизатор, ADAL не будет работать:

https://github.com/AzureAD/azure-activedirectory-library-for-js/issues/283

Предупреждение всем, кто пытается обновить низкоуровневое приложение до angular 2.0 до машинописного текста, ADAL будет проблемой.

person Shawn J. Molloy    schedule 20.10.2017