0

我们正在尝试构建一个 Angular SPA 应用程序,该应用程序利用 adal.js 向 Azure AD 进行身份验证。但是,与包含静态路由的示例应用程序不同,它不需要身份验证,我们希望确定用户是否经过身份验证并根据“userInfo.isAuthenticated”相应地路由用户,但是当通过使用 ng-if on 采取这种方法时我们被正确重定向到登录的索引页面,但是在输入您的登录凭据后,我们似乎出现了一个循环,该循环在应用程序登录过程中发生一到三次。有没有人有使用 ADAL 的解决方案。 js 和 ADAL-angular.js 在范围级别拦截“IsAuthenticating”属性以避免此问题?

谢谢,

4

1 回答 1

0

你能提供一些示例代码吗?我不清楚你的情况。您只是想在页面上显示/隐藏链接吗?示例应用使用 ng-show 使用 userInfo.isAuthenticated。您是否在此页面上使用 ng-if 并且无法正常工作?我希望它们对 ng-show 和 ng-if 工作类似,因为它检查布尔值。

<div class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li ng-class="{ active: isActive('/Home') }"><a href="#/Home">Home</a></li>
                    <li ng-class="{ active: isActive('/TodoList') }"><a href="#/TodoList">Todo List</a></li>
                    <li ng-class="{ active: isActive('/UserData') }"><a href="#/UserData" ng-show="userInfo.isAuthenticated">User</a></li>
                </ul>
                <ul class="nav navbar-nav navbar-right">
                    <li><a class="btn btn-link" ng-show="userInfo.isAuthenticated" ng-click="logout()">Logout</a></li>
                    <li><a class="btn btn-link" ng-hide=" userInfo.isAuthenticated" ng-click="login()">Login</a></li>
                </ul>
            </div>

示例:https ://github.com/AzureADSamples/SinglePageApp-AngularJS-DotNet/blob/master/TodoSPA/index.html

于 2015-03-30T17:22:38.280 回答