CanLoad Görevlisi Lazy yüklenmiş bir modül yükleme önler. Bu korumayı genellikle yetkisiz bir kullanıcının modülün herhangi bir rotasına gitmesini istemediğimizde ve hatta modülün kaynak kodunu görüp durduktan sonra bile kullanırız.
Angular, yetkisiz kullanıcıların rotaya erişmesini önleyen canActivate Guard özelliğini sağlar . Ancak modülün indirilmesini durdurmaz. Kullanıcı, kaynak kodunu görmek için chrome geliştirici konsolunu kullanabilir. CanLoad Guard, modülün indirilmesini engeller.
Aslında, CanLoad bir modülü yüklenmek üzere korur , ancak modül yüklendikten sonra CanLoad koruması hiçbir şey yapmaz. Kimliği doğrulanmamış kullanıcı için CanLoad koruması kullanarak bir modül yüklemesini koruduğumuzu varsayalım . Kullanıcı oturum açtığında, bu modül yüklenmeye uygun olacak ve bu modül tarafından yapılandırılan çocuk yollarda gezinebileceğiz. Ancak kullanıcı oturumu kapattığında, modül zaten yüklü olduğu için yine de kullanıcı bu alt yollarda gezinebilecektir. Bu durumda, çocuk yollarını yetkisiz kullanıcılardan korumak istiyorsak, CanActivate korumasını da kullanmamız gerekir .
AdminModule'u yüklemeden önce CanLoad'u kullanın :
{
path: 'admin',
loadChildren: 'app/admin/admin.module#AdminModule',
canLoad: [ AuthGuardService ]
},
AdminModule'u yükledikten sonra, AdminRouting modülünde CanActive'i aşağıdaki gibi yetkisiz kullanıcılardan korumak için kullanabiliriz :
{
path: '',
component: AdminComponent,
children: [
{
path: 'person-list',
component: PersonListComponent,
canActivate: [ AuthGuardService ]
}
]
}
canActivateYukarıdaki senaryoda kullanırsam fark ne olur?