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