El CanLoad Le garde empêche le chargement du module "Lazy Loaded". Nous utilisons généralement ce garde lorsque nous ne voulons pas qu'un utilisateur non autorisé puisse naviguer vers l'une des routes du module et qu'il ne puisse même pas voir le code source du module.
L'Angular fournit peutActiver Guard, qui empêche un utilisateur non autorisé d'accéder à l'itinéraire. Mais il n'empêche pas le téléchargement du module. L'utilisateur peut utiliser la console du développeur de chrome pour voir le code source. Le CanLoad Guard empêche le module d'être téléchargé.
En fait, CanLoad protège un module à charger mais une fois que le module est chargé, alors CanLoad La garde ne fera rien. Supposons que nous ayons protégé le chargement d'un module en utilisant CanLoad protection pour un utilisateur non authentifié. Lorsque l'utilisateur est connecté, le module sera chargé et nous pourrons naviguer sur les chemins des enfants configurés par ce module. Mais lorsque l'utilisateur est déconnecté, il sera toujours en mesure de naviguer dans ces chemins enfants car le module est déjà chargé. Dans ce cas, si nous voulons protéger les chemins enfantins des utilisateurs non autorisés, nous devons également utiliser le module CanActivate garde.
Utilisez CanLoad avant de charger AdminModule :
{
path: 'admin',
loadChildren: 'app/admin/admin.module#AdminModule',
canLoad: [ AuthGuardService ]
},
Après avoir chargé le module AdminModule, dans le module AdminRouting nous pouvons utiliser CanActivate pour protéger les enfants des utilisateurs non autorisés, comme ici :
{
path: '',
component: AdminComponent,
children: [
{
path: 'person-list',
component: PersonListComponent,
canActivate: [ AuthGuardService ]
}
]
}