2015-04-03 24 views
5

Próbuję obecnie podłączyć bibliotekę uwierzytelniania katalogu Azure (ADAL.JS) do interfejsu użytkownika. Mam go podłączony i przekierowuje poprawnie, ale zawsze przekierowuje 404 przed przekierowaniem. Przekierowanie działa, a następnie zostaje wysłany z powrotem do mojej aplikacji, która jest pokazujący 404.Ui-Router 404 podczas przekierowania z ADAL

Mam zmodyfikowany stan tak:

 { 
      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 
      } 

Mam to działa z normalną Kątowymi RouteProvider , a nie 404 jest rzucany.

Aplikacja, do której próbuję ją wprowadzić, została wygenerowana przez generator ręczny John Papas Yo.

+0

Próbuję zrobić to samo - zintegrować ADAL z HotTowel. Czy kiedykolwiek to rozwiązałeś? –

Odpowiedz

3

To wygląda jak błąd w adal.js. ui-router używa zmian stanu. Widzę jedną różnicę w ustawianiu strony początkowej dla zmian stanu w porównaniu do procedury zmiany trasy. Powinno być:

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

zamiast

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

Dzięki, spróbuję zmodyfikować go lokalnie i zobaczyć, jak to zrobię :) –

+0

Więc miałem grę, a to nie zadziałało. Dzieki za sugestie. –

0

Mogę potwierdzić, że ten problem został rozwiązany w aktualnym wydaniu 1.0.4 dzięki Omer Cansizoglu, który moim zdaniem jest autorem bibliotece. Używam Angular UI Router w mojej aplikacji z biblioteką uwierzytelniania Active Directory dla JavaScript (ADALJS). Aplikacja prawidłowo przekierowuje na stronę logowania do usługi Azure Active Directory, gdy nieuwierzytelniony użytkownik próbuje przejść do stanu z ustawioną flagą requireADLogin na wartość true. W żadnym momencie nie dostaję 404.

Należy pamiętać, że w momencie pisania CDN dla tej biblioteki wskazuje tylko na wersję 1.0.0. Jednak plik bower.json został zaktualizowany, a bower-install adal-angular zainstaluje wersję 1.0.4.

+0

Próbowałem ponownie aplikacji po aktualizacji, ale bez radości. Czy możesz dzielić się tym, jak umieściłeś go w Angular UI Router? Dzięki, John –

0

Próbowałem go z adal v1.0.12 + ui-router v0.2.18, ale bez powodzenia. Wygląda na to, że problem jest związany z hashprefiksem $ locationProvider. Jak stwierdzono tutaj:

3- Kiedy jest skonfigurowany w trybie HTML5, zapewnić $ locationProvider hashPrefix jest ustawiony

// 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

... i to działało jak urok!