Я хочу создать комплексную защиту маршрутизатора, которая проверяет, прошел ли пользователь аутентификацию в веб-приложении, но, если это так, она проверяет и другое условие и для каждого истинного условия перенаправляет на страницу (которая, однако, находится под тем же маршрутизатором).охранник).Чтобы лучше объяснить это внутри защиты маршрутизатора, я должен сделать что-то вроде этого:
canActivate(state: RouterStateSnapshot) {
if(isAuthenticated()) {
if(!isEmailVerified) {
// redirect to the "check the email" page
}
else if(!isProfileComplete()) {
// redirect to profile completion page
}
else {
// redirect to user homepage
}
return true;
} else {
// redirect login
return false;
}
}
Проблема на самом деле в том, что это не работает, потому что каждый редирект приводит к странице, защищенной этим сторожем, а затем каждый из перенаправлений вызываетдругой редирект, и он заканчивается бесконечным циклом.Я уже пытался проверить внутри условий, если State.url не то же самое, что мы перенаправляем внутрь тела условия, но это не работает.Есть ли простое решение для этого?