创建 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.js
与Express
和AngularJS
一起使用,并且我有单个应用程序应用程序。
我在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 流的最佳方法是啥?