Angular2 Redirect после входа в систему
Я создаю систему аутентификации в angular2 с идеей, что если пользователь, не прошедший аутентификацию, попытается перейти на «защищенный» URL, система перенаправит пользователя на страницу входа, введя в URL параметр запроса, который называется «next». «Это поможет системе входа перенаправить пользователя туда, где он хотел быть в первую очередь.
login?next=my-redirect-url
Чтобы защитить свои компоненты, я использую декоратор@CanActivate(isUserAuthenticated)
во всех них.isUserAuthenticated
Функция выглядит следующим образом:
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;
}
}
Этот подход не работает, потому чтоurlPath
собственностьnextInstr
не показывает "полный" URL (например, в нем отсутствуют параметры запроса).
Есть ли способ построить полный URL-адрес изComponentInstruction
например, какnextInstr
?