The CanLoad Penjaga mencegah pemuatan malas Modul Loaded. Kami biasanya menggunakan pelindung ini ketika kami tidak ingin pengguna yang tidak sah untuk menavigasi ke salah satu rute modul dan juga berhenti bahkan melihat kode sumber dari modul.
Angular menyediakan penjaga canActivate , yang mencegah pengguna yang tidak sah mengakses rute. Tetapi itu tidak menghentikan modul untuk diunduh. Pengguna dapat menggunakan konsol pengembang chrome untuk melihat kode sumber. CanLoad Guard mencegah modul agar tidak diunduh.
Sebenarnya, CanLoad melindungi modul yang akan dimuat tetapi setelah modul dimuat, penjaga CanLoad tidak akan melakukan apa-apa. Misalkan kita telah melindungi pemuatan modul menggunakan CanLoad guard untuk pengguna yang tidak berkepentingan. Saat pengguna masuk, modul itu akan berlaku untuk dimuat dan kita akan dapat menavigasi jalur turunan yang dikonfigurasi oleh modul itu. Namun saat pengguna keluar, pengguna tetap dapat menavigasi jalur turunan tersebut karena modul sudah dimuat. Dalam kasus ini jika kita ingin melindungi jalur anak dari pengguna yang tidak sah, kita juga perlu menggunakan penjaga CanActivate .
Gunakan CanLoad sebelum memuat AdminModule:
{
path: 'admin',
loadChildren: 'app/admin/admin.module#AdminModule',
canLoad: [ AuthGuardService ]
},
Setelah memuat AdminModule, di modul AdminRouting kita dapat menggunakan CanActive untuk melindungi anak dari pengguna yang tidak sah seperti di bawah ini:
{
path: '',
component: AdminComponent,
children: [
{
path: 'person-list',
component: PersonListComponent,
canActivate: [ AuthGuardService ]
}
]
}
canActivate
skenario di atas, apa bedanya?