什么是实现ACL /最好的办法纸基具有角2?如何使用角度2来实现基于ACL /角色的授权?
我的情况下,简单地说,是这样的:角色是动态的,是基于权限的客户端可以配置也可以是动态的。
我需要防止用户能够访问,他没有被授权做一个特定的资源。为此我想到了使用角度守卫的概念。使用CanActivate Guard,我可以根据每条路线中放置的信息设置是否让用户通过。该信息将是该路线所涉及的资源的名称。当我找到后卫时,我可以与他的角色进行比较,看看他的角色是否可以使用此功能以及是否允许导航。
但随着在可能落入两个问题:
1 - 如何给用户,他有访问资源重定向?我是否必须列出路线文件并寻找与他的角色兼容的人,然后在那里重定向?
2 - 如何禁用它不能在它可以访问页面上看到的组件?例如,它可以访问列表页面X,但它无权创建新项目,所以我需要删除创建按钮。或者说,如何使用包含某些角色的特定信息而不是角色的div元素来实现这一点?
我想知道如何最好地角生态系统中处理这个情况。
感谢收听。
警告:Angular 2将所有内容放在客户端,因此“保护”Angular中的资源(即:密钥或d ata对象)是不可能的,你必须在数据源处做到这一点。 所以你真正看着隐藏/显示可视化组件和重定向,在这里: [隐藏菜单项(可以扩展到按钮,数据对象等)] (http://stackoverflow.com/questions/36041192/angular2-how-to-hideno-render-the-link-in-the-menu-after-check-access) [Redirecting] (http://stackoverflow.com/questions/32896407/redirect-within-component -angular-2)。我们从数据源中提取ACL。 – davmor
我不确定你是否已经找到解决问题的方法。不过,我想指出的是,为[隐藏菜单项目]提供的链接@davmor已过时,因为它使用旧版路由器,因为它已被弃用。使用当前的路由器,无法获取路由数据,直到注入ActivatedRoute ...之后,才可以访问它的数据。 – 12seconds