Dans cet article, nous allons explorer comment utiliser les gardes (guards) avec Angular 17. Les gardes permettent de protéger les routes et de vérifier certaines conditions avant de permettre l'accès à une route spécifique.
Un garde fonctionnel dans Angular est une fonction utilisée pour intercepter et potentiellement bloquer la navigation vers une route. Avec Angular 17, vous utilisez CanActivateFn pour créer des gardes fonctionnels.
Voici un exemple de garde fonctionnel authGuard :
import { CanActivateFn } from '@angular/router'; import { inject } from '@angular/core'; import { Router } from '@angular/router'; import { AuthService } from './auth.service'; export const authGuard: CanActivateFn = (route, state) => { const authService = inject(AuthService); const router = inject(Router); if (authService.isLoggedIn()) { return true; } else { router.navigate(['/login']); return false; } };
Pour utiliser ce garde, vous devez le configurer dans votre module de routage en utilisant provideRouter et withGuards :
import { bootstrapApplication } from '@angular/platform-browser'; import { provideRouter, withGuards } from '@angular/router'; import { AppComponent } from './app/app.component'; import { authGuard } from './app/guards/auth.guard'; const routes = [ { path: 'protected', component: ProtectedComponent, canActivate: [authGuard] } ]; bootstrapApplication(AppComponent, { providers: [ provideRouter(routes, withGuards()) ] }).catch(err => console.error(err));
Les gardes fonctionnels dans Angular 17 offrent une manière flexible et puissante de protéger les routes et de gérer les autorisations. Ils sont particulièrement utiles pour des tâches telles que l'authentification et le contrôle d'accès.
Pour plus de détails, consultez la documentation officielle d'Angular sur les gardes【20†source】【22†source】【23†source】.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!