2015-04-03 13 views
5

Attualmente sto provando ad agganciare la libreria di autenticazione delle directory di Azure (ADAL.JS) al router UI. L'ho cablato, e si reindirizza correttamente, ma rimuove sempre un 404 prima del reindirizzamento. Il redirect funziona, e poi viene inviato di nuovo a mia domanda, che sta mostrando il 404.Ui-Router 404 durante il reindirizzamento con ADAL

Ho modificato lo stato in questo modo:

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

ho ottenuto che funziona con la normale RouteProvider angolare e nessun 404 viene lanciato.

L'applicazione che sto tentando di scandagliare è stata generata dal generatore di asciugamani caldi John Papas Yo.

+0

Sto provando a fare la stessa cosa: integrare ADAL in HotTowel. L'hai mai risolto? –

risposta

3

Questo sembra un bug in adal.js. ui-router sta usando i cambiamenti di stato. Vedo una differenza nell'impostazione della pagina iniziale per le modifiche di stato rispetto al gestore di modifica dell'itinerario. Dovrebbe essere:

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

invece di

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

Grazie, proverò a modificarlo localmente e vedrò come faccio :) –

+0

Quindi ho avuto un gioco, e questo non ha funzionato. Grazie per il suggerimento. –

0

posso confermare che questo problema è stato risolto nella versione corrente 1.0.4, grazie a Omer Cansizoglu, che credo sia autore della biblioteca. Sto usando Angular UI Router nella mia app con Active Directory Authentication Library per JavaScript (ADALJS) con successo. L'app reindirizza correttamente alla pagina di accesso di Azure Active Directory quando un utente non autenticato tenta di visitare uno stato con il flag requireADLogin impostato su true. Non ho un 404 in nessun punto.

Si noti che al momento della scrittura il CDN per questa libreria punta solo alla versione 1.0.0. Tuttavia, il file bower.json è stato aggiornato e bower-install adal-angular installerà la versione 1.0.4.

+0

Ho appena provato l'app di nuovo dopo l'aggiornamento, ma nessuna gioia. Puoi condividere come lo hai scandagliato in Angular UI Router? Grazie, John –

0

Ho provato con adal v1.0.12 + ui-router v0.2.18 ma senza fortuna. Sembra che il problema sia legato al hashprefix $ locationProvider. Come indicato qui:

3- Quando la modalità HTML5 è configurato, garantire la $ locationProvider hashPrefix è impostato

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

... e ha funzionato come un fascino!