Angular2 Redirect After Login

Ich erstelle ein Authentifizierungssystem in angle2 mit der Idee, dass, wenn ein nicht authentifizierter Benutzer versucht, zu einer "geschützten" URL zu navigieren, das System den Benutzer zu der Anmeldeseite umleitet, auf der ein Abfrageparameter namens "url" eingegeben wird. "next" hilft dem Anmeldesystem, den Benutzer dorthin zurückzuleiten, wo er eigentlich sein wollte.

login?next=my-redirect-url

Um meine Komponenten zu schützen, benutze ich den Dekorateur@CanActivate(isUserAuthenticated) in allen von ihnen. DasisUserAuthenticated Funktion ist etwas wie folgt:

function isUserAuthenticated(
    prevInstr: ComponentInstruction, 
    nextInstr: ComponentInstruction
): boolean {
    const authService = injector.get(AuthService);
    const router = injector.get(Router);
    if(authService.isLoggedIn()) {
        return true;
    } else {
        router.navigate(["/Login", {next: nextInstr.urlPath}]);
        return false;
    }
}

Dieser Ansatz funktioniert nicht, da dasurlPath Eigenschaft desnextInstr zeigt die "vollständige" URL nicht an (es fehlen beispielsweise Abfrageparameter).

Gibt es eine Möglichkeit, die vollständige URL aus einem @ zu erstelleComponentInstruction Instanz wienextInstr?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage