2017-08-25 1 views
0

Szenario ist AngularJS 1.6.5 SPA, C# WebAPI und Azure AD (AAD) für die Authentifizierung. Ich benutze Angular-ADAL-Bibliothek, um die Authentifizierung und Winkelroute zu behandeln, um Routen zu behandeln. Seltsame Sache ist, dass Routen, die anonym sein können (dh die requireADLogin: true in der Route-Definition nicht benötigen), aber zum Backend gehen müssen (um zum Beispiel ein Bild zu erhalten oder Daten von der API zu erhalten), von ADAL und nie abgefangen werden geh zum Backend/API.Angular ADAL erfordert Authentifizierung für nicht authentifizierte Routen

sind meine Routen wie so definiert ist, wenn ich eine Route wollen geschützt:

.when('/clasesDeDocumento', { 
    templateUrl: 'app/views/mantenedores/clasesDeDocumento/clasesDeDocumento.html', 
    controller: 'clasesDeDocumentoController', 
    controllerAs: 'vm', 
    requireADLogin: true, 
    title: "clases de documentos" 
}) 

Und ähnlich wie oben, aber ohne die requiredADLogin: true, wenn sie nicht geschützt.

der documentation Nach:

Routen, die automatisch auf die anonymousEndpoints Array nicht die requireADLogin = true Eigenschaft angeben hinzugefügt werden.

auf einem ungeschützten Link klicken, erfolgt nicht Sie auf die Azaure Seite Authentifizierung jedoch das Backend/API-Anfrage wird abgefangen und ein Fehler ausgelöst wird.

Ich habe dies gelöst (manuell) ein anonymousEndpoints Array hinzufügen, aber für größere Anwendungen wäre dies nicht machbar.

Irgendwelche Ideen?

Antwort

0

Dies ist das erwartete Verhalten. Die Parameter requireADLogin und anonymousEndpoints werden für die verschiedenen Zwecke verwendet.

Die requireADLogin wird verwendet, ob die Routen Nadel zu schützen sind. Wenn dies der Fall ist, müssen sich die Benutzer zuerst authentifizieren, bevor sie auf die Route zugreifen können.

Der Parameter anonymousEndpoints wird verwendet, um der Adal-Bibliothek zu helfen, festzustellen, ob der Dienst $http erforderlich ist, um das Token zu injizieren. Standardmäßig wird die Routen-URL in anonymousEndpoints eingefügt, wenn der Parameter requireADLogin nicht auf "true" festgelegt ist (siehe routeChangeHandler).

Verwandte Themen