Les guards sont des déclarations d'une ligne en haut d'un fichier de route ou à l'intérieur d'un bloc route qui imposent des contraintes de sécurité avant l'exécution du handler. Si un guard échoue, la requête est rejetée avec un code HTTP approprié. Le handler ne s'exécute jamais.
FLIN embarque neuf guards : auth, role, owner, rate_limit, csrf, api_key, ip, time et method. Les guards personnalisés sont aussi supportés.
flinguard auth
guard role("admin", "superadmin")
guard rate_limit(50, 60)
route DELETE {
guard owner(params.id)
// ...
}Les guards se composent avec une logique ET et s'évaluent en court-circuit.
Ceci est la partie 102 de la série "How We Built FLIN".
Navigation de la série : - [100] Request Context Injection - [101] The Middleware System - [102] Guards: Declarative Security for Routes (vous êtes ici) - [103] WebSocket Support Built Into the Language