Adal.js 未触发身份验证
Adal.js not triggering the authentication
我正在尝试将 adal.js 集成到我的应用程序中。以下是我的代码。谁能告诉我为什么没有触发身份验证。
var app = angular.module('TestWebApp', [
'ngRoute',
'testControllers',
'testServices',
'datatables',
'AdalAngular'
]);
/**
* Configure the Routes
*/
app.config(['$routeProvider', '$httpProvider', 'adalAuthenticationServiceProvider', function ($routeProvider, $httpProvider, adalAuthenticationServiceProvider) {
$routeProvider
// Home
.when("/dashboard", {templateUrl: "partials/package.html", controller: "searchCtrl",requireADLogin: true})
// else 404
.otherwise("/404", {templateUrl: "partials/404.html", controller: "searchCtrl"});
adalAuthenticationServiceProvider.init(
{
tenant: 'test.onmicrosoft.com',
clientId: '23234sf-sdf-------'
},
$httpProvider
);
}]);
我的页面 url 是 link 这个。
http://localhost:8081/test-ui/#/dashboard
这应该会转到 Azure 登录页面,但不会。
您的问题: 我认为您对 link 有疑问。你的 link 应该是这样的:http://localhost:8081/test-ui#/dashboard
<a href="#/home">Home</a>
<a href="#/todoList">ToDo List</a>
<a href="#/contactList">Contact List</a>
Adal.Js 使用 requireADLogin 关键字来中断路由更改事件。如果您没有看到任何重定向,则可能与未触发的 routechange 事件有关。我建议向您的应用添加不同的路由,以首先验证 angular 路由。
一般准则:您可以先试用示例应用程序,看看您的配置是否有效。
示例应用程序:https://github.com/AzureADSamples/SinglePageApp-DotNet
如果您遇到配置问题,可以按照自述文件中的步骤设置您的应用配置。
如果示例应用程序适用于您的配置并且您的应用程序有问题,您可以通过 Fiddler 查看调用并进一步调试到 adal.js。登录重定向事件还广播 adal:loginRedirect.
我认为您的 tenantID 可能是正确的 - 它需要是您的 AD 门户在您的 Azure 门户中为应用程序 ID URI(减去应用程序名称)所具有的任何内容。我还会查看清单 - 这是一项非常重要的更改。这些步骤在 Omar 链接的页面上。 SinglePageApp 示例是一个很好的入门资源,并且该示例很干净,即使对于 adal 部分来说可能有点微不足道。您还应该查看vittorio's excellent deep dive以获得对adal.js
的良好解释和精彩评论
对我来说,问题是我有一个登录按钮和一个由于 action="#"
而重定向的表单,因此 Azure 重定向不起作用。
我刚刚删除了整个 action
-属性并且它起作用了
我正在尝试将 adal.js 集成到我的应用程序中。以下是我的代码。谁能告诉我为什么没有触发身份验证。
var app = angular.module('TestWebApp', [
'ngRoute',
'testControllers',
'testServices',
'datatables',
'AdalAngular'
]);
/**
* Configure the Routes
*/
app.config(['$routeProvider', '$httpProvider', 'adalAuthenticationServiceProvider', function ($routeProvider, $httpProvider, adalAuthenticationServiceProvider) {
$routeProvider
// Home
.when("/dashboard", {templateUrl: "partials/package.html", controller: "searchCtrl",requireADLogin: true})
// else 404
.otherwise("/404", {templateUrl: "partials/404.html", controller: "searchCtrl"});
adalAuthenticationServiceProvider.init(
{
tenant: 'test.onmicrosoft.com',
clientId: '23234sf-sdf-------'
},
$httpProvider
);
}]);
我的页面 url 是 link 这个。
http://localhost:8081/test-ui/#/dashboard
这应该会转到 Azure 登录页面,但不会。
您的问题: 我认为您对 link 有疑问。你的 link 应该是这样的:http://localhost:8081/test-ui#/dashboard
<a href="#/home">Home</a>
<a href="#/todoList">ToDo List</a>
<a href="#/contactList">Contact List</a>
Adal.Js 使用 requireADLogin 关键字来中断路由更改事件。如果您没有看到任何重定向,则可能与未触发的 routechange 事件有关。我建议向您的应用添加不同的路由,以首先验证 angular 路由。
一般准则:您可以先试用示例应用程序,看看您的配置是否有效。 示例应用程序:https://github.com/AzureADSamples/SinglePageApp-DotNet
如果您遇到配置问题,可以按照自述文件中的步骤设置您的应用配置。
如果示例应用程序适用于您的配置并且您的应用程序有问题,您可以通过 Fiddler 查看调用并进一步调试到 adal.js。登录重定向事件还广播 adal:loginRedirect.
我认为您的 tenantID 可能是正确的 - 它需要是您的 AD 门户在您的 Azure 门户中为应用程序 ID URI(减去应用程序名称)所具有的任何内容。我还会查看清单 - 这是一项非常重要的更改。这些步骤在 Omar 链接的页面上。 SinglePageApp 示例是一个很好的入门资源,并且该示例很干净,即使对于 adal 部分来说可能有点微不足道。您还应该查看vittorio's excellent deep dive以获得对adal.js
的良好解释和精彩评论对我来说,问题是我有一个登录按钮和一个由于 action="#"
而重定向的表单,因此 Azure 重定向不起作用。
我刚刚删除了整个 action
-属性并且它起作用了