2017-03-15 46 views
0

我正在使用Angular 1.x应用程序,并使用Adal.js来处理身份验证。后端基于ASP.NET Core构建。我有5个API端点,其中只有3个需要保护(即只有经过身份验证的用户才能访问它们)。换句话说,我不需要验证GET调用。当需要显示来自GET调用的数据时有页面,但如果用户决定编辑,删除或添加数据,则他/她需要被认证。所有API都与UI相同的域中。如何阻止Adal.js拦截某些路由

我面临的问题是,当我初始化ADAL时,它试图拦截所有HTTP调用并尝试附加令牌。但是,由于我的几个网页需要对所有人都可见,因此这些州不受保护(即,我没有向这些州添加requireADLogin: true)。此后解决方案无法正常工作,即API调用正在进行。如果我尝试导航到其中一条受保护的路线,那么ADAL正在将用户重定向到登录页面,并且通话正在进行。

使用Adal Angular可以实现这样的解决方案吗?

回答

0

是的,这是可能的。

在这种情况下,我们没有为该控制器指定requireADLogin:true。但是,我们仍然需要保护我们想要的页面中的资源。例如我们可以隐藏添加/编辑/删除的按钮,这需要用户登录。

下面是一段代码,显示该按钮后,用户编辑登录和如果不将显示登录

<li><a class="btn btn-link" ng-hide="userInfo.isAuthenticated" ng-click="login()">Login</a></li> 
<li><a class="btn btn-link" ng-show="userInfo.isAuthenticated" ng-click="edit()">edit</a></li>