Adal.js不会触发身份验证

时间:2015-01-19 09:45:17

标签: javascript angularjs azure azure-active-directory adal

我正在尝试将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
);
}]);

我的页面网址就是这个链接。

http://localhost:8081/test-ui/#/dashboard

这应该转到Azure登录页面,但它不会。

3 个答案:

答案 0 :(得分:1)

我认为您的tenantID可能是正确的 - 它需要是您的AD门户网站对您的Azure门户网站中的应用程序ID URI(减去应用程序名称)所具有的任何内容。我也会看清单 - 这是一个非常重要的变化。这些步骤在Omar链接的页面上。 SinglePageApp示例在开始时是一个很好的资源,并且示例是干净的,如果对于adal部分可能有点微不足道。您还应该查看vittorio's excellent deep dive以获得对adal.js

的详细解释和好评

答案 1 :(得分:1)

对我来说问题是我有一个登录按钮,其表单由于action="#"而重定向,因此Azure重定向无法正常工作。 我刚删除了整个action - 属性,但它确实有用

答案 2 :(得分:0)

您的问题:我认为您的链接存在问题。您的链接应如下所示: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事件有关。我建议您在应用中添加不同的路线,以便首先验证角度路线。

一般准则:您可以先试用示例应用,看看您的配置是否正常。 示例应用:https://github.com/AzureADSamples/SinglePageApp-DotNet

如果您遇到配置问题,可以按照自述文件中的步骤设置应用配置。

如果示例应用程序适用于您的配置并且您的应用程序出现问题,您可以使用Fiddler查看调用并进一步调试到adal.js。登录重定向事件还广播adal:loginRedirect。