Les Route Guards (Gardiens de route) permettent de bloquer ou d'autoriser l'accès à certaines pages de votre application. Par exemple, interdire l'accès à la page "Profil" si l'utilisateur n'est pas connecté.
import { inject } from '@angular/core';
import { CanActivateFn, Router } from '@angular/router';
export const authGuard: CanActivateFn = () => {
const router = inject(Router);
// Vérification basique (simulée ici par le token en local storage)
const isLoggedIn = localStorage.getItem('token') !== null;
if (isLoggedIn) {
return true; // Autorise l'accès à la page
} else {
router.navigate(['/login']); // Redirige vers la connexion
return false; // Bloque l'accès
}
};Angular propose une commande CLI pour créer rapidement la structure de votre Guard.
ng generate guard guards/authChoisissez "CanActivate" quand on vous demande quel type de guard vous voulez créer.
Un Guard moderne est une simple fonction (CanActivateFn) qui doit retourner :
Router).Dans votre fichier app.routes.ts, il suffit d'ajouter la propriété canActivate: [authGuard] sur la route que vous souhaitez verrouiller. Vous pouvez même mettre plusieurs Guards à la suite dans ce tableau !