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
?