Angular 2 Authentifizierung mit untergeordneten Routen

8

Ich habe eine angular 2-Anwendung, in der ich auf jeder Seite authentifiziert werden muss. Also habe ich ein benutzerdefiniertes RouterOutlet implementiert, um zu bestätigen, dass ich bei jedem Seitenwechsel angemeldet bin.

%Vor%

Hier ist ein Arbeitscode: Ссылка

Gibt es eine bessere Möglichkeit, Routenänderungen abzufangen und zur Anmeldung umzuleiten, wenn der Benutzer nicht authentifiziert ist?

    
version2 12.02.2016, 23:42
quelle

3 Antworten

8

Für jeden, der das findet, ist die Antwort in Angular 2 nun, "Guards" als Teil des neuen Routers zu verwenden. Siehe Dokumentation zu Angular 2:

Ссылка

Ein einfacher Wächter implementiert "CanActivate" und könnte wie folgt arbeiten:

%Vor%

Wie Sie in diesem Beispiel sehen können, habe ich einen AuthService, der irgendwo anders ausgeführt wird (die Implementierung ist nicht wichtig), der dem Wächter mitteilen kann, ob der Benutzer authentifiziert wurde. Wenn sie haben, kehren Sie zurück und die Navigation geschieht wie gewohnt. Wenn nicht, geben wir false zurück und leiten sie zum Anmeldebildschirm um.

    
John Ackerman 29.06.2016, 00:35
quelle
2

Hier ist ein aktuelles Beispiel für die Verwendung eines AuthGuard mit Angular 2 RC6.

Routen mit der von AuthGuard geschützten Home Route

%Vor%

AuthGuard leitet zur Anmeldeseite um, wenn der Benutzer nicht angemeldet ist

%Vor%

Das vollständige Beispiel und die funktionierende Demo können Sie lesen dieser Beitrag

    
Jason 25.08.2016 00:50
quelle
0

Sie können auch CanActivate verwenden, direkte DI jedoch nicht unterstützt im Moment. Hier ist eine schöne Abhilfe tho.

Viel Glück.

    
aberenyi 14.02.2016 15:28
quelle