2015-04-03 17 views
5

我目前正試圖將Azure目錄認證庫(ADAL.JS)掛接到UI-Router。我已經接入了它,並且重定向正確,但在重定向之前它總是會捕獲404。重定向的工作原理,然後被送回我的應用程序,這正顯示出404用ADI重定向時的Ui-Router 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 
      } 

我找到了與正常角RouteProvider工作,並沒有404被拋出。

我試圖將其應用到的應用程序由John Papas Yo熱毛巾發生器生成。

+0

我正在嘗試做同樣的事情 - 將ADAL整合到HotTowel中。你有沒有解決它? – 2016-04-22 08:48:07

回答

3

這看起來像adal.js中的一個錯誤。 ui路由器正在使用狀態更改。我發現設置狀態更改的起始頁面與路由更改處理程序相比有一點不同。它應該是:的

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

代替

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

謝謝,我會嘗試在本地修改它,看看我是怎麼做的:) – 2015-04-03 20:26:28

+0

所以我有一個遊戲,並沒有奏效。感謝您的建議。 – 2015-04-07 13:15:50

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

+0

我剛剛更新後再次嘗試應用程序,但沒有快樂。你可以分享你如何將它引入Angular UI路由器嗎? 謝謝, 約翰 – 2015-06-29 14:22:43

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

...和它的工作就像一個魅力!