我们有一个AngularJS SPA,我们一直在使用Adal.js进行身份验证。到目前为止,我们使用的是$routeProvider (ngRoute模块)来处理路由,但由于最近的一些需求,我们需要从路由提供者的方法出发,采用$stateProvider (在ui-路由器中)。但是,out身份验证机制需要保持相似。adal.js能以类似于$stateProvider的方式与$routeProvider一起工作吗?
我们在路由中使用requiredADLogin参数来指定哪些路由需要Azure身份验证。代码如下所示:
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属性置于父状态。
发布于 2015-10-13 21:24:48
adal.js将与ui路由器一起工作,requireADLogin应该处于您想要保护的每个状态,而不仅仅是父状态。
发布于 2017-10-20 17:45:13
如果您使用的是组件路由器,ADAL将无法工作:
https://github.com/AzureAD/azure-activedirectory-library-for-js/issues/283
任何试图升级一个低级别的前置2.0应用程序到打字稿的人都会受到警告,ADAL将是一个挑战。
https://stackoverflow.com/questions/33080961
复制相似问题