Angular2 De Redirection Après La Connexion

Je suis de la création d'un système d'authentification dans angular2 avec l'idée que si un utilisateur n'est pas authentifié essaie de naviguer d'un "protégé" de l'url, le système va rediriger l'utilisateur vers la page de connexion de mettre dans l'url d'une requête de paramètre appelé "suivant" qui aidera le système de connexion de rediriger l'utilisateur de retourner à l'endroit où il voulait être, en premier lieu.

login?next=my-redirect-url

Pour protéger mes composants, je suis en utilisant le décorateur @CanActivate(isUserAuthenticated) dans chacun d'eux. Le isUserAuthenticated fonction est quelque chose comme suit:

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

Cette approche ne fonctionne pas parce que la urlPath propriété de la nextInstr est pas à l'affiche "complet" url (il manque la requête params par exemple).

Est-il un moyen de construire l'url complète à partir d'un ComponentInstruction instance comme nextInstr?

Avez-vous vu la discussion dans github.com/angular/angular/issues/4112 je pense que c'est assez similaire à ce que vous essayez d'accomplir. Il y a également un lien vers un Plunker (n'ont pas eu un oeil de plus près moi-même).
merci pour le lien, mais j'ai déjà résolu le problème de la façon d'obtenir de l'injecteur à l'intérieur de la décoration de la fonction isUserAuthenticated. Mon problème est de savoir comment générer l'url pour rediriger l'utilisateur après la connexion.
Je n'ai pas lu tous les détails, mais j'ai l'impression que ils ont discuté de la requête params. Désolé pour le bruit alors.

OriginalL'auteur David Barreto | 2016-03-22