使用ADAL重定向时的Ui-Router 404

时间:2015-04-03 07:59:05

标签: angularjs angular-ui-router hottowel adal

我目前正在尝试将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发电机生成的。

3 个答案:

答案 0 :(得分:3)

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

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

而不是

_adal._saveItem(_adal.CONSTANTS.STORAGE.START_PAGE, nextRoute.url);

答案 1 :(得分:0)

我可以确认此问题已在当前版本1.0.4中得到解决,感谢Omer Cansizoglu,我相信他是该图书馆的作者。我在我的应用程序中使用Angular UI路由器成功使用Active Directory身份验证库(ADALJS)。当未经身份验证的用户尝试访问requireADLogin标志设置为true的状态时,应用程序会正确地重定向到Azure Active Directory登录页面。我不会在任何时候得到404。

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

答案 2 :(得分:0)

我尝试使用adal v1.0.12 + ui-router v0.2.18,但没有运气。似乎该问题与$ locationProvider hashprefix有关。如上所述:

  

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('!');
}]);

Active Directory Authentication Library (ADAL) for JavaScript

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