Proteção de rotas - AlvaroVasconcelos/modular GitHub Wiki
Podemos proteger nossas rotas com middlewares que verificarão se a rota está disponível dentro de um determinado Route. Primeiro crie um RouteGuard:
class MyGuard implements RouteGuard {
@override
bool canActivate(String url) {
if(url != '/admin'){
//código para autorização
return true;
} else {
//acesso negado
return false;
}
}
}
Agora coloque na propriedade 'guards' da sua Router.
@override
List<Router> get routers => [
Router("/", module: HomeModule()),
Router("/admin", module: AdminModule(), guards: [MyGuard()]),
];
Se colocar em uma rota módulo, o RouterGuard ficará global para aquela rota.