angularjs - 将 Adal.js 与 $stateProvider 结合使用

标签 angularjs angular-ui-router adal angularjs-ng-route adal.js

我们有一个 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/

相关文章:

c# - [AADSTS65001] : The user or administrator has not consented to use the application

javascript - 我可以像任何其他库一样将 JointJS 作为 AngularJS 模块注入(inject)吗?

javascript - AngularJS - 基于类别等的复杂过滤

angularjs - 如何动态设置 uib-accordion-group 的样式

javascript - Angular - ngAnimate - Animate.css - 元素首先显示然后动画开始

javascript - Angular 路由结果为 404 - 无法获取

android - Azure BLOB 存储 REST API - 使用 ADAL 访问 token 返回 403 和 404 错误

javascript - Angular UI Router - 具有空 Url 的抽象父状态

javascript - 嵌套子状态中的 Angular ui 路由和多个 View

android - 适用于 Android 的 ADAL - 处理错误的正确方法是什么?