2015-04-03 12 views
5

Ich versuche derzeit, die Azure Directory Authentication Library (ADAL.JS) in den UI-Router einzubinden. Ich habe es verdrahtet, und es leitet richtig um, aber es chucks immer ein 404 vor der Umleitung. Die Umleitung funktioniert, und dann wird zurück in meine Anwendung gesendet, die den 404.Ui-Router 404 beim Umleiten mit ADAL

zeigt ich den Zustand wie so geändert haben:

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

Ich habe es mit dem normalen Schräg RouteProvider Arbeits und kein 404 wird geworfen.

Die Anwendung, die ich versuche, es auszuloten, wurde von John Papas Yo Hot Towel Generator generiert.

+0

Ich versuche das Gleiche zu tun - ADAL in HotTowel zu integrieren. Hast du es jemals gelöst? –

Antwort

3

Das sieht wie ein Fehler in adal.js aus. Ui-Router verwendet Statusänderungen. Ich sehe einen Unterschied bei der Einstellung der Startseite für Statusänderungen im Vergleich zum Routenänderungs-Handler. Es sollte sein:

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

statt

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

Danke, ich werde versuchen, es lokal zu ändern und zu sehen, wie ich :) –

+0

So hatte ich ein Spiel, und das hat nicht funktioniert. Danke für den Vorschlag. –

0

Ich kann bestätigen, dass dieses Problem 1.0.4 dank Omer Cansizoglu in der aktuellen Version behoben wurde, den ich glaube, Autor der Bibliothek ist. Ich verwende den Angular UI Router in meiner App mit der Active Directory-Authentifizierungsbibliothek für JavaScript (ADALJS) erfolgreich. Die App leitet die Anmeldeseite von Azure Active Directory korrekt um, wenn ein nicht authentifizierter Benutzer versucht, einen Zustand zu besuchen, in dem das Flag requireADLogin auf true gesetzt ist. Ich bekomme keinen 404 an irgendeinem Punkt.

Beachten Sie, dass zum Zeitpunkt des Schreibens der CDN für diese Bibliothek nur auf Version 1.0.0 zeigt. Die Datei bower.json wurde jedoch aktualisiert, und wird die Version 1.0.4 installieren.

+0

Ich habe gerade die App nach dem Update nochmal ausprobiert, aber keine Freude. Können Sie teilen, wie Sie es in Angular UI Router ausgelotet haben? Danke, John –

0

Ich versuchte es mit Adal v1.0.12 + Ui-Router v0.2.18 aber kein Glück. Es scheint so, als ob das Problem mit dem Hash-Präfix $ locationProvider zusammenhängt. Wie hier angegeben:

3- Wenn HTML5-Modus konfiguriert ist, sicherzustellen, dass der $ 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

gesetzt

... und es funktionierte wie ein Zauber!