Para quienes esten usando una version superior a Angular 15, seguro les haya dicho que el CanActivate está deprecado. Esto porque ahora los guards se recomiendan hacerlo mediante funciones. Por lo que quedaria de la siguiente manera
export const redirectGuard: CanActivateFn = () => {
const token = inject(TokenService).getToken();
const router = inject(Router);
if (token) {
router.navigate(['/app']);
}
return true;
};
Mientras que el auth.guard.ts quedaria de la siguiente manera
export const authGuard: CanActivateFn = () => {
const token = inject(TokenService).getToken();
const router = inject(Router);
if (!token) {
router.navigate([’/login’]);
return false;
}
return true;
};
En el app-routing.module no tienen que cambiar nada, queda igualito. Espero le haya servido a alguien 😃
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?