我们有一个 AngularJS SPA,我们一直在使用 Adal.js 进行身份验证。到目前为止,我们一直在使用 $routeProvider(ngRoute 模块)处理路由,但由于最近的一些需求,我们需要摆脱路由提供者方法并采用 $stateProvider(在 ui-router 中)。然而,身份验证机制需要保持相似。 adal.js 能否以与 $routeProvider 一起使用的方式与 $stateProvider 一起使用?
我们在路由中使用 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 属性放在父状态中。
最佳答案
adal.js 将与 ui-router 一起使用,requireADLogin 应该处于您想要保护的每个状态,而不仅仅是在父状态。
关于angularjs - 将 Adal.js 与 $stateProvider 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33080961/