3

У нас есть 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 в родительском состоянии.

ответ

3

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

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