Guard
NestJS 🟡 MidDéfinition
Classe @Injectable implémentant CanActivate qui décide si une requête peut continuer. Idéal pour l'authentification et l'autorisation.
Analogie
Comme un videur de boite de nuit : il vérifie si tu as le droit d'entrer avant de te laisser passer.
Exemple de code
@Injectable()
export class AuthGuard implements CanActivate {
canActivate(context: ExecutionContext): boolean {
const request = context.switchToHttp().getRequest();
return !!request.headers.authorization;
}
}
Cas d'usage
Protéger des routes avec authentification JWT, vérifier les roles RBAC ou valider des permissions.
Anti-pattern
Termes liés
En entretien
Explique-moi ce qu'est un Guard et à quoi il sert.
C'est une classe @Injectable qui implémente CanActivate et décide si une requête peut continuer ou non, comme un videur de boîte de nuit qui vérifie si tu as le droit d'entrer avant de te laisser passer. C'est l'outil idéal pour l'authentification et l'autorisation.
Pourquoi éviter de vérifier l'authentification directement dans chaque controller ?
Parce que c'est l'anti-pattern à éviter : ça duplique la vérification partout au lieu d'utiliser un guard réutilisable appliqué via @UseGuards. Un guard centralise la protection des routes pour l'authentification JWT ou les rôles RBAC.
Fiche mise à jour le 2026-09-27