5

我目前正在尝试将 Azure 目录身份验证库 (ADAL.JS) 挂接到 UI-Router。我已经把它连线了,它重定向正确,但它总是在重定向之前抛出一个 404。重定向有效,然后被发送回我的应用程序,显示 404。

我已经像这样修改了状态:

        {
            state: 'admin',
            config: {
                url: '/admin',
                templateUrl: 'app/admin/admin.html',
                controller: 'AdminController',
                controllerAs: 'vm',
                title: 'Admin',
                settings: {
                    nav: 2,
                    content: '<i class="fa fa-lock"></i> Admin'
                },
                requireADLogin: true
            }

我已经让它与普通的 Angular RouteProvider 一起工作,并且没有抛出 404。

我试图将其插入的应用程序是由 John Papas Yo Hot Towel 生成器生成的。

4

3 回答 3

3

这看起来像 adal.js 中的错误。ui-router 正在使用状态更改。与路由更改处理程序相比,我发现为状态更改设置起始页的一个区别。它应该是 :

_adal._saveItem(_adal.CONSTANTS.STORAGE.START_PAGE, $location.$$path);

代替

_adal._saveItem(_adal.CONSTANTS.STORAGE.START_PAGE, nextRoute.url);
于 2015-04-03T17:14:27.787 回答
0

我可以确认此问题已在当前版本中得到解决1.0.4,这要感谢我相信是该库的作者Omer Cansizoglu 。我在我的应用程序中成功使用了 Angular UI Router 和 Active Directory Authentication Library for JavaScript (ADALJS)。当未经身份验证的用户尝试访问requireADLogin标志设置为 true 的状态时,应用程序会正确重定向到 Azure Active Directory 登录页面。我在任何时候都没有得到404。

请注意,在编写此库的 CDN 时,仅指向 version 1.0.0。但是,该bower.json文件已更新,bower-install adal-angular并将安装版本1.0.4.

于 2015-06-23T04:34:41.740 回答
0

我用 adal v1.0.12 + ui-router v0.2.18 试过,但没有运气。似乎问题与 $locationProvider 哈希前缀有关。如此处所述:

3- 配置 HTML5 模式时,确保设置了 $locationProvider hashPrefix

// using '!' as the hashPrefix but can be a character of your choosing
app.config(['$locationProvider', function($locationProvider) {
    $locationProvider.html5Mode(true).hashPrefix('!');
}]);

适用于 JavaScript 的 Active Directory 身份验证库 (ADAL)

......它就像一个魅力!

于 2016-10-27T07:45:45.047 回答