“Nenhum provedor para AuthGuard!” Usando CanActivate no Angular 2
EDIT: Obviamente, isso está desatualizado, agora você fornece sua guarda noproviders
matriz em um NgModule. Assista a outras respostas ou documentação oficial para obter mais informações.
provideRouter()
está desatualizado tambémEstou tentando configurar a autenticação no meu projeto, usando um login e AuthGuard no guia Angular2:https://angular.io/docs/ts/latest/guide/router.html
Estou usando o release: "@ angular / router": "3.0.0-beta.1".
Vou tentar explicar o máximo possível, fique à vontade para me dizer se precisar de mais detalhes.
eu tenho meumain.ts arquivo que inicia o aplicativo com o seguinte código:
bootstrap(MasterComponent, [
APP_ROUTER_PROVIDERS,
MenuService
])
.catch(err => console.error(err));
Carrego o MasterComponent, que carrega um cabeçalho que contém botões que permitem navegar pelo meu aplicativo e que também contém o principal por enquanto.
Estou seguindo o guia para fazer meu aplicativo funcionar da mesma maneira, com os seguintesapp.routes.ts :
export const routes: RouterConfig = [
...LoginRoutes,
...MasterRoutes
];
export const APP_ROUTER_PROVIDERS = [
provideRouter(routes),
AUTH_PROVIDERS
];
E alogin.routes.ts do guia, que define meu AuthGuard:
export const LoginRoutes = [
{ path: 'login', component: LoginComponent }
];
export const AUTH_PROVIDERS = [AuthGuard, AuthService];
meu componente mestre tem sua própria definição de rota, que também contém a proteção que estou tentando configurar.master.routes.ts :
export const MasterRoutes : RouterConfig = [
{ path: '', redirectTo: '/accueil', pathMatch: 'full' },
{
path: 'accueil',
component: AccueilComponent
},
{ path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard] },
];
E eu estou usando os mesmos arquivos do guia, que sãoauth.guard.ts, auth.service.ts, login.component.ts elogin.routes.ts.
No meuheader.component.ts arquivo, quando tento acessar qualquer rota, está funcionando bem, mas quando tento acessar o caminho protegido (/ dashboard), recebo oNenhum provedor para AuthGuard! erro.
Vi o post recente com o mesmo problema que o meu (NoProviderError usando CanActivate no Angular 2), mas para mim o guarda é inicializado corretamente até omain.ts para que meu roteador saiba quais rotas devem ser fornecidas com o AuthGuard, certo?
Qualquer ajuda ou conselho seria muito apreciada. Obrigado !