Как добавить canActivate: [AuthGuard], в loadChildren по тому же маршруту - PullRequest
0 голосов
/ 13 июня 2019

У меня есть app-routing.module.ts

const routes: Routes = [
    { path: "", redirectTo: "/fp", pathMatch: "full" },
    { path: "home", loadChildren: "~/app/home/home.module#HomeModule" },
    { path: "login", loadChildren: "~/app/accounts/login/login.module#LoginModule" },
    { path: "register", loadChildren: "~/app/accounts/registers/registers.module#RegistersModule" },
 { path: "fp", loadChildren: "~/app/accounts/first_page/first_page.module#FirstPageModule" },
];
export const routing = NativeScriptRouterModule.forRoot(routes, {preloadingStrategy: PreloadAllModules});

В домашнем компоненте у меня есть home-routing.module.ts

const routes: Routes = [
    { path: "", component: HomeComponent }
];

В LoginComponent у меня есть login-routing.module.ts

const routes: Routes = [
    { path: "", component: LoginComponent }
];

В RegisterComponent у меня есть resgister-routing.module.ts

const routes: Routes = [
    { path: "", component: RegistersComponent }
];

В RegisterComponent у меня есть first_page-routing.module.ts

const routes: Routes = [
    { path: "", component: FirstPageComponent }
];

Я создаю authguard как это:

canActivate(): boolean {
        if (this.auth.isAuthenticated()) {
            console.log('true')
             return true;
      }
        this.router.navigate(['/login']);
        console.log('false')
         return false;
     }

У меня вопрос, как использовать AuthGuard в моей маршрутизации?

1 Ответ

0 голосов
/ 13 июня 2019

Вы можете попробовать добавить охрану в модуль маршрутизации приложения:

const routes: Routes = [
    { path: '', redirectTo: '/fp', pathMatch: 'full' },
    { path: 'home', loadChildren: '~/app/home/home.module#HomeModule' },
    {
        path: 'login',
        loadChildren: '~/app/accounts/login/login.module#LoginModule'
    },
    {
        path: 'register',
        loadChildren:
            '~/app/accounts/registers/registers.module#RegistersModule'
    },
    {
        path: 'fp',
        loadChildren:
            '~/app/accounts/first_page/first_page.module#FirstPageModule',
        canActivate: [AuthGuard],
        canActivateChild: [AuthGuard],
    }
];

... при условии, что вы хотите защитить только путь fp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...