嘿,我正在为SpringBoot应用程序开发前端。我才刚刚开始学习Angular。如果我在同一项目中创建管理页面,我不确定是否存在安全问题。
管理员页面和用户页面将共享很多代码,但是其他人不应该访问管理员操作(甚至数据)。
到目前为止我发现了什么:Should I create Two Angular projects for Admin and Users?
因此,用两个模块创建一个Angular项目应该是正确的方法吗?但是我该如何处理呢?或者我可以只建立一个具有身份验证和管理员/用户角色的单一模块项目吗?什么是最佳做法?
谢谢
我最近开发了一个项目,该项目具有一组面向用户的页面和一组管理员页面。
我构建项目的方式大致如下:
|- 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分开编译的,只有在命中我的管理路径时,浏览器才会加载它。