创建 AngularJS ACL 的最佳方法是啥? [关闭]

Posted

技术标签:

【中文标题】创建 AngularJS ACL 的最佳方法是啥? [关闭]【英文标题】:What is the best way to create AngularJS ACL? [closed]创建 AngularJS ACL 的最佳方法是什么? [关闭] 【发布时间】:2014-01-22 10:47:30 【问题描述】:

我想与您(社区)分享我的问题。

我使用MEAN 堆栈,所以我将Node.jsExpressAngularJS 一起使用,并且我有单个应用程序应用程序。

我在Node \ Express \ Jade 代码中使用passport 作为身份验证策略。 我想在我的页面上创建管理部分来管理用户和其他东西。

我还想通过向我的 $routeProvider 添加一些访问控制来保护这个异步加载的 AngularJS 站点,例如:

$routeProvider.when('/admin/users', 
    templateUrl: '/views/admin/users.html',
    auth: 
        required: true,
        roles: ['admin']
    
)

这只是我想在我的实际解决方案中实现的伪代码。 如果用户没有登录,应该重定向到/signin页面,如果用户已经登录并且没有适当的角色来查看这个页面,应该使用自定义信息重定向到适当的视图。

【问题讨论】:

问题既过于宽泛又过于固执。 【参考方案1】:

我更喜欢在服务器端处理访问控制,如果他/她不应该能够访问它,就不要为用户提供任何服务。然后我填写并解释来自服务器的响应,以执行重新路由到登录表单等操作。

这允许真正灵活的安全机制。例如,我可以为您所描述的那样使用防火墙配置我的后端安全性(其中应该保护路由“/admin”及其所有后代)。我可以使用 ACL 来保护单个对象,或者使用 SecurityManager 来对发出请求的用户进行更复杂的分析。

也许这不是对您问题的直接回答,而是鼓励以不同的方式解决问题。我仍然认为这比我所见过的纯 JS 访问控制方法更好。

【讨论】:

如果您包括设置分解、代码 sn-ps 等,我会 +1 ;)【参考方案2】:

看看 UI-Router:https://github.com/angular-ui/ui-router

这很酷,你可以根据你想要的任何安全方案拦截状态变化。

我们将它与基于权限/角色/组的安全方案一起使用,效果非常好。

【讨论】:

以上是关于创建 AngularJS ACL 的最佳方法是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用 angularjs 播放 rtmp 流的最佳方法是啥?

限制AngularJS聊天室中消息的最佳方法是啥

在 AngularJS 中有条件地应用属性的最佳方法是啥?

在这种情况下,在 AngularJS 中处理事件的最佳方法是啥?

angularjs和mvc5之间沟通的最佳方式是啥?

spring Boot 和 Angular JS:处理身份验证的最佳方法是啥?