我应该将我的管理页面包含在角度项目中还是应该创建一个单独的页面?

问题描述 投票:0回答:1

嘿,我正在为SpringBoot应用程序开发前端。我才刚刚开始学习Angular。如果我在同一项目中创建管理页面,我不确定是否存在安全问题。

管理员页面和用户页面将共享很多代码,但是其他人不应该访问管理员操作(甚至数据)。

到目前为止我发现了什么:Should I create Two Angular projects for Admin and Users?

因此,用两个模块创建一个Angular项目应该是正确的方法吗?但是我该如何处理呢?或者我可以只建立一个具有身份验证和管理员/用户角色的单一模块项目吗?什么是最佳做法?

谢谢

angular security project-structure
1个回答
0
投票

我最近开发了一个项目,该项目具有一组面向用户的页面和一组管理员页面。

我构建项目的方式大致如下:

|- AppModule
|-- components
|-- services
|-- app routing
|- SharedModule
|-- components
|- AdminModule
|-- components
|-- admin routing

AppModule和AdminModule都导入SharedModule。 AdminModule从我的AppRouting的根管理路径中延迟加载,如下所示:

{
  path: appPaths.admin.path,
  canLoad: [AdminGuardService],
  loadChildren: () => import('../modules/admin/admin.module').then(m => m.AdminModule)
}

其中AdminGuardService是用于检查当前用户是否具有管理员访问权限的路由保护。

延迟加载模块的好处在于,它是与AppModule分开编译的,只有在命中我的管理路径时,浏览器才会加载它。

© www.soinside.com 2019 - 2024. All rights reserved.