javascript - 创建 AngularJS ACL 的最佳方法是什么?

标签 javascript node.js angularjs mean-stack

<分区>

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

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

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

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

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

这只是我想在我的实际解决方案中实现的伪代码。 如果用户未登录,应重定向到 /signin 页面,如果用户已登录但没有适当的 Angular 色来查看此页面,应重定向到具有自定义信息的适当 View 。

最佳答案

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

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

也许这不是对您问题的直接回答,而是鼓励以不同的方式处理问题。我仍然认为这是一种比我在纯 JS 访问控制方面看到的任何方法都更好的方法。

关于javascript - 创建 AngularJS ACL 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20926126/

相关文章:

javascript - 在Screeps中,是否以允许写入CPU极限健壮代码的方式实现CPU极限?

php - 使用 PHP (Apache) 启动 Linux 应用程序,并具有某些命令的 root 权限

node.js - 如何在 Electron 中取消注册上下文菜单监听器

javascript - 更改 NG-Click 功能

javascript - 访问未命名对象的属性(对象内)

javascript - 输入值为空 react

javascript - 如何在 TypoScript TYPO3 代码中插入 JavaScript 管道

javascript - Mongoose:我的 findByIdAndUpdate 有什么问题吗?

javascript - 嵌套 ng-repeat 中的 Angularjs 单选按钮未选中

javascript - 清空下拉列表中的第一个元素