Redirecionamento Angular2 após o login

Estou criando um sistema de autenticação em angular2 com a ideia de que, se um usuário não autenticado tentar navegar para um URL "protegido", o sistema redirecionará o usuário para a página de login, colocando no URL um parâmetro de consulta chamado "next "que ajudará o sistema de login a redirecionar o usuário de volta para onde ele queria estar.

login?next=my-redirect-url

Para proteger meus componentes, estou usando o decorador@CanActivate(isUserAuthenticated) em todos eles. oisUserAuthenticated A função é a seguinte:

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

Essa abordagem não está funcionando porque ourlPath propriedade donextInstr não está mostrando o URL "completo" (não possui parâmetros de consulta, por exemplo).

Existe uma maneira de criar o URL completo a partir de umComponentInstruction instância comonextInstr?

questionAnswers(2)

yourAnswerToTheQuestion