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