【问题标题】:AngularJS SPA Application Azure AD refresh during AuthenticationAngularJS SPA 应用程序 Azure AD 在身份验证期间刷新
【发布时间】:2023-03-14 07:16:01
【问题描述】:
我们正在尝试构建一个 Angular SPA 应用程序,该应用程序利用 adal.js 向 Azure AD 进行身份验证。但是,与包含静态路由的示例应用程序不同,它不需要身份验证,我们希望确定用户是否经过身份验证并根据“userInfo.isAuthenticated”相应地路由用户,但是当通过使用 ng-if on 采取这种方法时我们被正确重定向到登录的索引页面,但是在输入您的登录凭据后,我们似乎出现了一个循环,在应用程序登录过程中发生了一到三次。有没有人有使用 ADAL 的解决方案。 js 和 ADAL-angular.js 在范围级别拦截“IsAuthenticating”属性以避免此问题?
谢谢,
【问题讨论】:
标签:
angularjs
authentication
single-page-application
azure-active-directory
adal
【解决方案1】:
你能提供一些示例代码吗?我不清楚你的情况。您只是想在页面上显示/隐藏链接吗?示例应用使用 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