Я использую angular 9 с ленивой загрузкой. Во время разработки и производства, если я обновлю sh страницу вручную, пользователь всегда будет перенаправлен на страницу playbook. Я перепробовал все решения из inte rnet, но ни одно из них мне не помогло. Я также попытался использовать useHa sh, который мне не помог.
Только аутентифицированные люди могут получить доступ к этим маршрутам, так что это происходит только для людей, которые аутентифицированы
файл app-routing
const routes: Routes = [
{ path: 'login', component: LoginComponent },
{ path: 'admin', loadChildren: () => import('./pages/postLogin/admin/admin.module').then(m => m.AdminModule) },
{ path: 'gallery', loadChildren: () => import('./pages/postLogin/gallery/gallery.module').then(m => m.GalleryModule) },
{ path: 'alias', loadChildren: () => import('./pages/postLogin/alias/alias.module').then(m => m.AliasModule) },
{ path: 'playbook', loadChildren: () => import('./pages/postLogin/playbook/playbook.module').then(m => m.PlaybookModule) },
{ path: 'taskManagement', loadChildren: () => import('./pages/postLogin/taskManagement/taskManagement.module').then(m => m.TaskManagementModule) },
];
@NgModule({
imports: [RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules, useHash: true })],
exports: [RouterModule]
})
export class AppRoutingModule { }
Мой дочерний маршрут для playbook
const routes: Routes = [
{
path: '',
component: PlaybookEntryComponent,
children: [
{
path: 'blockView',
component: BlockViewEntryComponent
},
{
path: 'columnView/:type/:columnType/:noOfColumns/:blockId',
component: ColumnviewComponent
},
{
path: 'exportPdf/:playbookId',
component: ExportPdfComponent
}
],
},
];
На данный момент я еще не реализовал охранники, я еще не реализовал их
код app.component.ts
constructor(private router: Router) {
if (localStorage.getItem('enableocityAccessToken')) {
this.router.navigate(['/playbook']);
} else {
this.router.navigate(['/login']);
}
}
Решение для обработки, когда пользователь вошел в систему -
В app.component.ts
if (path && path.length > 0) {
this.router.navigate([path.substr(1)]);
} else {
if (localStorage.getItem('enableocityAccessToken')) {
this.router.navigate(['/playbook']);
} else {
this.router.navigate(['/login']);
}
}