将 Adal.js 与 $stateProvider 一起使用
Using Adal.js with $stateProvider
我们有一个 AngularJS SPA,我们一直在使用 Adal.js 进行身份验证。到目前为止,我们一直在使用 $routeProvider(ngRoute 模块)处理路由,但由于最近的一些需求uirement,我们需要放弃路由提供者方法并采用 $stateProvider(在 ui-路由器)。然而,身份验证机制需要保持相似。 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 应该处于您想要保护的每个状态,而不仅仅是在父状态。
如果您使用的是组件路由器,ADAL 将无法工作:
https://github.com/AzureAD/azure-activedirectory-library-for-js/issues/283
警告任何试图将低级别 angular 2.0 应用程序升级到打字稿的人,ADAL 将是一个挑战。
我们有一个 AngularJS SPA,我们一直在使用 Adal.js 进行身份验证。到目前为止,我们一直在使用 $routeProvider(ngRoute 模块)处理路由,但由于最近的一些需求uirement,我们需要放弃路由提供者方法并采用 $stateProvider(在 ui-路由器)。然而,身份验证机制需要保持相似。 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 应该处于您想要保护的每个状态,而不仅仅是在父状态。
如果您使用的是组件路由器,ADAL 将无法工作:
https://github.com/AzureAD/azure-activedirectory-library-for-js/issues/283
警告任何试图将低级别 angular 2.0 应用程序升级到打字稿的人,ADAL 将是一个挑战。