Angular2 Redirect después de iniciar sesión

Estoy creando un sistema de autenticación en angular2 con la idea de que si un usuario que no está autenticado intenta navegar a una url "protegida", el sistema redirigirá al usuario a la página de inicio de sesión poniendo en la url un parámetro de consulta llamado "next" "eso ayudará al sistema de inicio de sesión a redirigir al usuario a donde quería estar en primer lugar.

login?next=my-redirect-url

Para proteger mis componentes, estoy usando el decorador@CanActivate(isUserAuthenticated) en todos ellos. losisUserAuthenticated La función es algo como sigue:

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

Este enfoque no funciona porque elurlPath propiedad de lanextInstr no muestra la url "completa" (por ejemplo, carece de parámetros de consulta).

¿Hay alguna manera de construir la url completa desde unComponentInstruction instancia comonextInstr?

Respuestas a la pregunta(2)

Su respuesta a la pregunta