2017-03-15 4 views
0

나는 Angular 1.x 응용 프로그램을 작성 중이며 Adal.js를 사용하여 인증을 처리하고 있습니다. 백엔드는 ASP.NET 코어를 기반으로합니다. API 엔드 포인트가 5 개 중 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>