Angular 角度2动态路线构建和;组件级权限

Angular 角度2动态路线构建和;组件级权限,angular,Angular,我正在设计一个我想用Angular 2编写的应用程序,我有一些基本的问题,这些问题可能会对总体设计产生重大影响,我只是被如何用“正确的角度方式”来完成这个问题难倒了。我的问题是: 1) 动态路由问题:我不喜欢文档现在推荐的方式,即在根组件的开头放置所有路由。我希望能够在安全组件模块初始化时动态添加/删除路由配置对象,并验证用户是否有权访问该特定区域/模块。例如:根app.component对应用程序进行初始设置,包括为应用程序的公共部分设置初始公共路由配置。如果用户成功登录,那么此时,我想初始化

我正在设计一个我想用Angular 2编写的应用程序,我有一些基本的问题,这些问题可能会对总体设计产生重大影响,我只是被如何用“正确的角度方式”来完成这个问题难倒了。我的问题是:

1) 动态路由问题:我不喜欢文档现在推荐的方式,即在根组件的开头放置所有路由。我希望能够在安全组件模块初始化时动态添加/删除路由配置对象,并验证用户是否有权访问该特定区域/模块。例如:根app.component对应用程序进行初始设置,包括为应用程序的公共部分设置初始公共路由配置。如果用户成功登录,那么此时,我想初始化安全组件,并将常规安全路由动态添加到路由器。我希望对任何安全子组件执行相同的操作,这样,一个区域的“父组件”将定义用户有权访问的路由,并在初始化该父组件并且验证用户有权访问该组件时,相应地将这些路由添加到路由配置中。那么,这可能吗?在示例中,路由配置是一个常量,但我希望可以通过将组件附加到路由配置来实现这一点

2) 组件级权限:除了可以访问整个组件外,用户在该组件内还可以拥有权限(例如:用户可以访问设备模块。在设备模块内,用户可以读取设备列表,但无法查看设备列表)。我希望能够将用户的权限存储在数据库中。键入record(例如:“userID,'equipment.retrieve'”。然后我想创建一个结构指令,它接受权限可以访问的属性(即permission=“equipment.retrieve”)如果元素的计算结果为false,则隐藏该元素。我的问题是,客户端的权限是否足够安全?我在api级别进行了授权检查,如果用户没有权限,则应该阻止他们,但我希望确保在客户端以最佳方式执行此操作


我希望能得到任何反馈。

您需要一次加载所有路由,但您可以稍后像这样再次加载它们

router.resetConfig([
 { path: 'team/:id', component: TeamCmp, children: [
   { path: 'simple', component: SimpleCmp },
   { path: 'user/:name', component: UserCmp }
 ] }
]);
这样,您可以随时修改routes阵列,然后将路由器配置重置为新更新的routes阵列

另见


提供了一个有趣的RC.6Plunker

。我想我可以创建一个服务来维护和更新路由配置。虽然没有我希望的那么干净,但它可以工作。谢谢!对权限访问有什么想法吗?不确定权限访问是关于什么的。结构化指令方法似乎合理。要“足够的安全性”-安全性必须在服务器上得到认可,如果在客户机上进行,则根本不安全。在客户机上,它就像一个窗帘,任何人都可以轻松地移开,以查看他想要什么。